Sob*_*LAN 22 java swing jdialog
我想在JDialog的底部添加一个按钮(JButton),按下时应关闭JDialog.问题是我不知道在该按钮的ActionListener中写什么.我不希望按钮退出程序,只需关闭对话框.
JDialog是通过显式调用JDialog的一个构造函数创建的,而不是通过调用JOptionPane中的一个方法来创建的.
我非常惊讶于我无法使用Google找到答案.我预计很多编程站点都会广泛涵盖经常遇到的问题.很奇怪,事实并非如此.
Moh*_*lam 41
import java.awt.event.*;
import javax.swing.*;
public class YourDialog extends JDialog implements ActionListener {
JButton button;
public YourDialog() {
button = new JButton("Close");
button.addActionListener(this);
add(button);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
dispose();
}
}
Run Code Online (Sandbox Code Playgroud)
仅关闭dialolg使用dispose()方法父框架未关闭.JVM没有终止的原因.
在你想要的东西的actionPerformed()方法中ActionListener:
dialog.setVisible(false);
Run Code Online (Sandbox Code Playgroud)
如果你想永久摆脱对话(从内存中释放),你也可以打电话:
dialog.dispose();
Run Code Online (Sandbox Code Playgroud)
...其中dialog是对话框的名称.如果dialog是一个局部变量,你需要最终以这种方式访问它(或者只是确保它从Java 8开始"有效地最终").
如果你将按钮添加为JDialog的子类的一部分(即如果你已经得到class MyDialog extends JDialog并且你正在添加动作监听器MyDialog),你将需要:
MyDialog.this.setVisible(false);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70038 次 |
| 最近记录: |