我在卡布局容器中有一些面板(不知道这是否是正确的术语)。我无法找到设置容器内这些面板的位置或大小的方法。我试过setBounds和setLayout(null),我仍然无法获得任何改变。 这些是我的领域和构造函数。我已经使我的框架工作,我可以看到并使用按钮来更换卡片,但我真的无法改变有关卡片的其他内容。我将两个卡片面板设置为两个不同的背景,但它们仅在按钮周围形成一个小小的边框,并将其留在屏幕中央。更改背景和卡布局中面板的大小
我也不明白为什么这不是正确粘贴我的代码...所以对不起!
public class TestPanel extends JPanel implements ActionListener {
CardLayout cl = new CardLayout();
private JPanel panelCont = new JPanel();
private JPanel panel1 = new JPanel();
private JPanel panel2 = new JPanel();
private static JButton but1 = new JButton("Change panels");
private static JButton but2 = new JButton("Change back");
public TestPanel() {
panelCont.setLayout(cl);
panel1.add(but1);
panel2.add(but2);
panel1.setBackground(Color.black);
panel2.setBackground(Color.blue);
panelCont.add(panel1, "1");
panelCont.add(panel2, "2");
cl.show(panelCont, "1");
but1.addActionListener(this);
but2.addActionListener(this);
add(panelCont);
}
}
谢谢。我提前道歉。我发现很难理解卡片布局。
要使用代码格式化,选择样品并单击传递消息张贴/编辑形式上面的'{}'按钮。 –
*“我试过setBounds和setLayout(null),我仍然无法得到任何改变。”*不要使用这些方法。 Java GUI可能需要在多种平台上工作,使用不同的屏幕分辨率和使用不同的PLAF。因此,它们不利于组件的准确放置。对于可靠的GUI,改为使用布局管理器或它们的组合,以及**布局填充**和**边框**作为空白区域来组织组件。为了更快地获得更好的帮助,请发布[SSCCE](http://sscce.org/),面板的大小取决于它们添加到的任何容器的布局。 –