如何在java中停止重叠两个jpanel

时间:2013-06-01 18:22:12

标签: java swing jpanel

我的java应用程序中有2个jbuttons。 我也有2个jpanels。 这两个jpanels具有不同的内容,即彼此无关。 现在我希望每当用户点击一个按钮时,应该显示相应的jpanel但是在同一位置(jpanels有不同的宽度和高度)。

当我尝试在netbeans中执行此操作时,一个jpanel包含在另一个jpanel

private void button1ActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:

 button1panel.setVisible(true);
//all other panel's visibility is false
}

就像button2一样,我有像这样的actionlistener

private void button2ActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
//all other panel's visibility is false
 button2panel.setVisible(true);
}

我将这两个面板放在另一个面板上(button2panel over button1panel),以便我可以在同一位置访问它

但由于button2panel的宽度和宽度都很小。当我调用button2panel.setVisible(true)时它的高度实际上没有启用。

我的演示说,因为button2panel位于button1panel& button1panel的可见性是错误的,这就是它发生的原因。

我能做的只是将button2panel带到button1panel外面,但如果我这样做,那么面板的位置会有所不同

如何解决?

或任何更好的解决方案??

2 个答案:

答案 0 :(得分:4)

请参阅How to Use Card Layout上的Swing教程中的部分,它可以满足您的需求。 CardLayout将使面板具有相同的尺寸,这比在更换面板时更改框架尺寸更好。

答案 1 :(得分:1)

我建议您查看A Visual Guide to Layout Managers以帮助您选择最适合您特定情况的LayoutManager。 LayoutManagers是Swing框架提供的强大工具。它们根据您提供的最少数量的参数为您计算GUI组件的位置和大小。

相关问题