1
我使用awt
和swing
創建了對話框。在這種形式下,我有JTextField
和okButton
,它是JButton
。如何使對話窗口隱藏在點擊okButton
? 這裏是我的類代碼:如何關閉按鈕上的對話框窗口點擊
public class QueueDialog extends JFrame implements ActionListener {
private static final long SerialVersionUID = 1L;
private static JTextField field = new JTextField(15);
private Sender sender;
private String incommingMessagesFolderUrl = "/etc/dlp/templates";
public QueueDialog() throws Exception {
sender = new Sender();
// field.setSize(60, 15);
JButton okButton = new JButton("ok");
final JLabel label = new JLabel("Enter the name of queue:");
GridBagLayout gbag = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
setLayout(gbag);
gbc.insets = new Insets(2, 0, 2, 0);
gbc.gridy = 0;
gbc.gridx = 0;
gbag.setConstraints(label, gbc);
gbc.gridy = 1;
gbc.gridx = 0;
gbag.setConstraints(field, gbc);
gbc.gridy = 2;
gbc.gridx = 0;
gbag.setConstraints(okButton, gbc);
add(okButton);
add(field);
add(label);
setTitle("Queue name");
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
setSize(400, 200);
setLocationRelativeTo(null);
setVisible(true);
okButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("ok")) {
// label.setText(field.getText());
send(field.getText());
}
}
});
}
}
在動作監聽器寫this.setVisible(假):P –
反正它是從來沒有好主意從構造函數中調用重寫方法,所以請爲同一個方法創建不同的方法 –
1)不要擴展框架或其他頂層容器。而是創建並使用一個實例。 2)不要設置頂級容器的大小。而是佈置內容並調用'pack()'。 3)這不是一個對話框,而是一個框架。如果你想要一個對話框,使用'JDialog'! –