打开一个新的 JFrame
我有一个主 JFrame,其中包含用于不同功能的各种面板,人们可以在其中计算事物.我想在用户点击第一个计算按钮时打开一个新的 JFrame 并用作输出窗口(如果您熟悉它们,则类似于 SPSS 输出窗口).
I have a main JFrame that has all kinds of panels in it for different functions and people can calculate things in them. I want to open a new JFrame when the user hits the first calculate button and serve as a Output window (Simlar to SPSS output windows if you are familiar with them).
New JFrame 将完全独立,并拥有自己的菜单栏...此处不适合使用简单的 JDialog.
The New JFrame will be completely separate and will have its own menu bar ... A simple JDialog is not the way to go here.
推荐答案
- 无法抗拒,简单不同意答案
JFrame frame = new JFrame(
);和frame.setVisible(true);
不要那样做,只创建两个 JFrame, 重用第 2 个.
JFrame
使用getContentPane.removeAll()
,用于来自JButton
don't do that, create only two JFrames, reuse 2nd.
JFrame
by usinggetContentPane.removeAll()
, for another actions fromJButton
那么所有的生命周期将只涉及
setVisible(true)
/setVisible(false)
then all lifecycle will be only about
setVisible(true)
/setVisible(false)
将
DefaultCloseOperations
更改为HIDE_ON_CLOSE
New JFrame 将完全独立,并拥有自己的菜单酒吧.一个简单的 JDialog 不是这里的方法.
The New JFrame will be completely separate and will have its own menu bar. A simple JDialog is not the way to go here.
JDialog
有什么问题,Toolbar
中只有一个按钮,而JFrame
中只有三个按钮,根本不同意,- whats wrong with
JDialog
, only one button in theToolbar
in compare with three buttons inJFrame
, simple disagree, - 使用
SwingWorker
或Runnable#Thread
(需要包装到invokeLater
)获取放置在 JDialog 中的 JComponents 的值,如果所有更改都已完成调用JDialog.setVisible(true)
封装到invokeLater()
- use
SwingWorker
orRunnable#Thread
(required wrap intoinvokeLater
) for get value for JComponents placed into JDialog, if all changes are done callJDialog.setVisible(true)
wrapped intoinvokeLater()
输出窗口(类似于 SPSS 输出窗口,如果您熟悉他们).
Output window (Simlar to SPSS output windows if you are familiar with them).
我想在用户点击第一个计算时打开一个新的 JFrame按钮并用作输出窗口(类似于 SPSS 输出窗口,如果你熟悉它们).
I want to open a new JFrame when the user hits the first calculate button and serve as a Output window (Simlar to SPSS output windows if you are familiar with them).
相关文章