gpt4 book ai didi

java - 禁用-启用 jframe eclipse

转载 作者:行者123 更新时间:2023-12-01 12:56:18 25 4
gpt4 key购买 nike

我试图在禁用 mainJframe 以使用另一个 jFrame 后启用它。我在使用: actionPerformed 和: frame.setEnabled(false); 之后禁用它,第二个 jFrame 可以正常工作并关闭,但我无法再次启用我的 mainJframe。

public class Main {

JFrame frame;
public static void main(String[] args) {...}
private void initialize() {
frame = new JFrame();
frame.getContentPane().setFont(new Font("Tahoma", Font.PLAIN, 13));
frame.setBounds(50, 10, 1050, 650);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new CardLayout(0, 0));

JMenuBar menuBar = new JMenuBar();
frame.setJMenuBar(menuBar);

JMenu menu1 = new JMenu("Something");
menuBar.add(menu1);

JMenuItem menuItem1 = new JMenuItem("go to frame 2");
mntmAddStudent.setFont(new Font("Segoe UI Semilight", Font.PLAIN, 12));
menu1.add(menuItem1);
menuItem1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {

frame.setEnabled(false); /* ???diable it here or in OtherClass??? */

OtherClass otherClass = new OtherClass ();
otherClass .setVisible(true);

}
});

}
}

public class OtherClass extends JFrame {

private JFrame otherClass;
public static void main(String[] args) {...}

public OtherClass() {
otherClass = new JFrame();
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {
System.out.println("closing...");
JFrame frame = (JFrame)e.getSource();

int result = JOptionPane.showConfirmDialog(frame,"Are you sure you to close this frame?","Exit Application",JOptionPane.YES_NO_OPTION);

if (result == JOptionPane.YES_OPTION){
***What do I do here to enable main frame again?***
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
});
}
}

我在 main 中也有多个布局,并且 jFrame 太多,现在无法将它们更改为 jDialogs。我正在使用 eclipse 开普勒。有什么问题吗?

最佳答案

基本上,您“似乎”所做的是创建一个新实例 Main 并启用它,而不是启用您之前禁用的实例。

首先删除 Main m = new Main(),但除非我们有更多代码可供引用,否则不可能建议您如何引用父框架。

更好的解决方案可能是使用模式 JDialogJOptionPane 作为第二个窗口,这将阻止用户与第一个框架交互,直到它关闭。

看看How to Make Dialogs了解更多详情

实际的runnable example that demonstrates your problem将涉及更少的猜测工作和更好的响应

关于java - 禁用-启用 jframe eclipse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23861049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com