我的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外面,但如果我这样做,那么面板的位置会有所不同
如何解决?
或任何更好的解决方案??
答案 0 :(得分:4)
请参阅How to Use Card Layout上的Swing教程中的部分,它可以满足您的需求。 CardLayout将使面板具有相同的尺寸,这比在更换面板时更改框架尺寸更好。
答案 1 :(得分:1)
我建议您查看A Visual Guide to Layout Managers以帮助您选择最适合您特定情况的LayoutManager。 LayoutManagers是Swing框架提供的强大工具。它们根据您提供的最少数量的参数为您计算GUI组件的位置和大小。