Open a new JFrame

有些话、适合烂在心里 提交于 2019-12-28 06:36:42

问题


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(); and frame.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 using getContentPane.removeAll(), for another actions from JButton

  • then all lifecycle will be only about setVisible(true) / setVisible(false)

  • change DefaultCloseOperations to HIDE_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 the Toolbar in compare with three buttons in JFrame, simple disagree,

Output window (Simlar to SPSS output windows if you are familiar with them).

  • use SwingWorker or Runnable#Thread (required wrap into invokeLater) for get value for JComponents placed into JDialog, if all changes are done call JDialog.setVisible(true) wrapped into invokeLater()



回答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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!