【发布时间】:2012-03-24 08:33:00
【问题描述】:
在我的应用程序中有两个框架。在主框架中的“服务器”按钮在那里。当我单击“服务器”按钮时,第二个框架将打开,当我单击第二个框架上的“提交”按钮时输入一些详细信息后,该框架将关闭并再次控制转到我调用此框架的“服务器”按钮,所以我将完成剩下的任务。 当第二帧打开然后第一帧没有活动时,我希望在我的应用程序中再做一件事。
我的第一个框架是:JFrame框架;
在这个框架中有一个服务器按钮:JButton btnSaveOnServer;
在这个按钮的 addActionListener 中,我写了这段代码来打开第二帧:
btnSaveOnServer.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
ServerClass window = new ServerClass();
window.serverFrame.setVisible(true);
}
});
第二帧代码:
public class ServerClass{
public JFrame serverFrame;
private JLabel userName;
private JLabel password;
private JTextField textUsername;
private JPasswordField textPassword;
private JButton btnOk;
protected ServerClass(){
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
serverFrame = new JFrame("Server Entry Token");
serverFrame.setBounds(500, 280, 335, 250);
serverFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
serverFrame.getContentPane().setLayout(null);
font = new Font("Arial", Font.BOLD, 15);
userName = new JLabel("Username");
userName.setBounds(4, 40, 100, 15);
userName.setFont(font);
password = new JLabel("PassKey");
password.setBounds(4, 69, 100, 15);
password.setFont(font);
textUsername = new JTextField();
textUsername.setBounds(110, 35, 200, 25);
textUsername.setFont(font);
textPassword = new JPasswordField(10);
textPassword.setBounds(110, 65, 200, 25);
textPassword.setEchoChar(ch);
btnOk = new JButton("Submit");
btnOk.setBounds(30, 170, 85, 25);
serverFrame.add(userName);
serverFrame.add(password);
serverFrame.add(textUsername);
serverFrame.add(textPassword);
serverFrame.add(btnOk);
btnOk.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
if (!textUsername.getText().equals("")
&& !textPassword.getText().equals("")) {
tArea.append("Username:\t"+textUsername.getText()+"\n");
tArea.append("Pass:\t"+textPassword.getText()+"\n");
//tArea is the area in first frame where I display the entered data.
serverFrame.dispose();
}
}
});
}
}
这里我在“提交”按钮中添加代码 serverFrame.dispose(); 关闭框架但控制不到达第一帧。 所以我的问题是:
- 如何在第二个框架打开时禁用或停用我的第一个框架。
- 在我的代码中,我在第一帧的“服务器”按钮中调用第二帧。这是将第二帧调用到第一帧的写入方式吗?
- 我如何关闭第二个框架(单击提交按钮后),这样框架将关闭并且控制将转到第一框架的“服务器”按钮。
【问题讨论】: