替换多个JFrame

时间:2014-01-29 17:11:50

标签: java swing jframe

在我的程序中,单击按钮时会弹出一个窗口。它做了一些复杂的事情,所以它需要在它自己的类中。因此,我可以使用其他东西,例如支持多个窗口的布局,而不是多个JFrame。记住我已经有了一个解决方案,我只是想问一下是否有更好的方法可以做到这一点,1000窗口中不会有1000个任务栏图标。

2 个答案:

答案 0 :(得分:4)

真的,你如何配置你的GUI将取决于你当时的需求,所以你的问题确实没有一个通用的答案。 但话说回来,我会建议你,

  1. 使用Swing GUI类(“视图”类)来创建JPanel。
  2. 然后你可以轻松地在JFrame,JDialog,JApplet,另一个JPanel,JTabbledPane,JScrollPane,JInternalFrame中添加这些视图,作为CardLayout“卡”的一部分,...这将为您的程序提供极大的灵活性。
  3. 如果您需要在单个GUI中交换“视图”,请考虑使用CardLayout执行此操作。 CardLayout-using JPanel将成为显示器,“Card”JPanels将在CardLayout的控制下依次查看。
  4. 如果你需要显示一个独立的窗口,并且需要冻结调用窗口,那么将你的视图放入一个模态JDialog或JOptionPane(实际上只是一个带有一些语法糖的JDialog)。

答案 1 :(得分:2)

如果您绝对需要为每个启动的任务显示一个新窗口,请查看JInternalFrame。这些可以在父窗口中创建,并且每次创建时都不会创建新的任务栏图标。

否则,如果您不需要为每个任务创建新窗口,则应该考虑为您的任务创建不同的线程。如果你谷歌“java concurency”,有很多文档。