我想从 JDialog 禁用框架上的按钮,我尝试了所有方法,但它不起作用。程序的执行从一帧开始,当点击按钮时弹出对话框。很简单,当您单击对话框上的按钮时,框架的按钮应该被禁用并且对话框将关闭。
顺便说一句:一切正常,它只是没有被禁用的框架按钮!
PS:我在 NetBeans 上对此进行编码,因此为了简单起见,我删除了不必要的编码。
这是框架的编码:
public class Frame extends javax.swing.JFrame {
Dialog D = new Dialog(this, true);
public Frame(){
setTitle("Frame");
initComponents();
setResizable(false);
}
void buttonDisable(){
Btn1.setEnabled(false);
}
private void Btn1ActionPerformed(java.awt.event.ActionEvent evt) {
D.setVisible(true);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Frame().setVisible(true);
}
});
}
// Variables declaration - do not modify
public javax.swing.JButton Btn1;
// End of variables declaration
}
这是 JDialog Box 的编码:
public class Dialog extends javax.swing.JDialog {
public Dialog(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
setTitle("Dialog");
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
new Frame().buttonDisable();
dispose();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
Dialog dialog = new Dialog(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
// End of variables declaration
}