问题
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.
JFrameby usinggetContentPane.removeAll(), for another actions fromJButtonthen all lifecycle will be only about
setVisible(true)/setVisible(false)change
DefaultCloseOperationstoHIDE_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 theToolbarin compare with three buttons inJFrame, simple disagree,
Output window (Simlar to SPSS output windows if you are familiar with them).
- use
SwingWorkerorRunnable#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