我想在用户单击按钮时最大化JFrame内的JPanel。实现此目的的最佳方法是什么。视图和数据模型应在两个面板(即JFrame和最大化。请给我建议解决方案。

我的要求是:我有一个名为4个JPanels的JFrame,名为


JPanelA,JPanelB,JPanelC,JPanelD
这里的JPanelD包含一个JList和
下方的按钮说“最大化”
“面板”按钮。JList有一个JTree
在里面。有时JList可能
有大量的数据,但不是
对用户清晰可见。


因此,他需要单独最大化此JPanelD才能清楚地查看JList的内容。为此,他单击“ MAXIMIZE PANEL”按钮。单击动作之后,JFrame中的JPanelD保留在那里,还有一个具有相同JList数据的新JPanel(即,应该弹出JPanelD的副本(例如JPanelDMaximized)。这就是我想要做的..

最佳答案

进一步澄清问题的方法:

拿我的代码,然后删除:

maximizedFrame.setUndecorated( true );


并在显示之前放大框架的尺寸。那应该满足您所需的最大化行为。

另一个问题是您不能将JPanelD添加到两个JFrame中。弹出框架必须具有其自己的唯一JPanel对象(我们将其称为JPanelE)。因此,您需要:


像执行JPanelD一样初始化和布局JPanelE。这意味着给JPanelE自己的JList(以及JTree,依此类推)。
与JPanelE的JList共享JPanelD的JList中的ListModel,依此类推。成功执行此操作的可行性和细节取决于实现的细节,并且超出了原始问题的范围。

10-04 18:02