如何在运行时Java Swing中修改JPanel大小
我试图在最大化窗口时修改JPanel大小 事件工作正常,但新大小不起作用如何在运行时Java Swing中修改JPanel大小,java,swing,netbeans,jpanel,Java,Swing,Netbeans,Jpanel,我试图在最大化窗口时修改JPanel大小 事件工作正常,但新大小不起作用 private void resize(String type){ if(type.equals("maximized")){ System.out.println(panel_menu.getLocation()); panel_menu.setPreferredSize(new Dimension(panel_menu.getWidth(), d.height));
private void resize(String type){
if(type.equals("maximized")){
System.out.println(panel_menu.getLocation());
panel_menu.setPreferredSize(new Dimension(panel_menu.getWidth(), d.height));
panel_menu.revalidate();
}
}
当我最大化窗口时,面板就是这样做的,但是当我点击最大化按钮时,JPanel不会改变大小
有什么帮助吗?谢谢大家! 通常不直接修改JPanel大小,而是
- 使用布局管理器和嵌套JPanel的智能组合为您调整大小
- 有时会覆盖JPanel上的
,以允许它灵活地调整自身大小,但这样做时要小心,并且通常要遵守public维度getPreferredSize()
会导致覆盖super。getPreferredSize()
BorderLayout.CENTER
位置,那么JPanel将直接使用JFrame重新调整大小。关键是要学习各种布局管理器,然后对它们进行实验。你声明你的代码“不工作”,但需要告诉它是如何工作的。你还需要在你的问题中展示我们可以编译、运行、测试和修改的代码,请阅读重要链接,因为它会告诉你这个有用构造的细节。对不起,我想我是在具体说明。当我点击最大化按钮时,面板的大小不会改变。这就是问题所在……您确实知道您在组件上调用revalidate()
,而不是在保存组件的容器上调用它——这是您应该做的。但是,您仍然没有发布有效的。