问题
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).
The New JFrame will be completely separate and will have its own menu bar ... A simple JDialog is not the way to go here.
回答1:
- can't resist, simple disagree with answers
JFrame frame = new JFrame(
); andframe.setVisible(true);
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).
don't do that, create only two JFrames, reuse 2nd.
JFrame
by usinggetContentPane.removeAll()
, for another actions fromJButton
then all lifecycle will be only about
setVisible(true)
/setVisible(false)
change
DefaultCloseOperations
toHIDE_ON_CLOSE
The New JFrame will be completely separate and will have its own menu bar. A simple JDialog is not the way to go here.
- whats wrong with
JDialog
, only one button in theToolbar
in compare with three buttons inJFrame
, simple disagree,
Output window (Simlar to SPSS output windows if you are familiar with them).
- 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()
回答2:
JFrame newFrame = new JFrame();
newFrame.setVisible(true);
回答3:
Never use more than one JFrame within a Swing application. Use JDialog for extra windows instead.
See The Use of Multiple JFrames, Good/Bad Practice?.
回答4:
I maybe mis understanding your question but
JFrame frame = new JFrame();
frame.setVisible(true);
回答5:
I used code JFrame frame = new JFrame();
frame.setVisible(true);
. This block of code just do empty window.
来源:https://stackoverflow.com/questions/15167404/open-a-new-jframe