按下按钮后java不在jframe中显示jpanel

时间:2017-03-14 20:56:36

标签: java jframe jlabel

我只是制作一个用户界面,所有我希望它按下按钮后显示谢谢...我是新手,但从我看到没有错误?我试过玩这套可见而无济于事......任何帮助都非常感谢

[(-300.0, 120.0), (-186.0, 120.0), (-106.0, 80.0), (-78.0, 55.0), (-57.0, 40.0), (-29.0, 15.0), (-10.0, 15.0), (10.0, -11.0), (19.0, -11.0), (28.0, -12.0), (57.0, -27.5), (78.0, -37.0), (106.0, -50.0), (150.0, -70.0), (186.0, -90.0), (236.0, -110.0), (300.0, -120.0)]

1 个答案:

答案 0 :(得分:1)

蔬菜面板不显示的原因很简单:Xou永远不会将{is}添加到ActionListener

要使代码正常运行,您需要在按钮的button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent event) { listPanel.setVisible(!listPanel.isVisible()); panel.setVisible(!panel.isVisible()); if (listPanel.isVisible()) { contentPane.remove(panel); // Vegetables are visible, so remove the Cars contentPane.add(listPanel, BorderLayout.CENTER); // And add the Vegetables } else { contentPane.remove(listPanel); // Vice versa contentPane.add(panel, BorderLayout.CENTER); } } }); 中添加/删除面板:

ActionListener

然后,您需要移动contentPane声明下面的final并将其设为JCheckBox[] checks = new JCheckbox[5]; checks[0] = new JCheckBox("Car0"); panel.add(checks[0]); ...

另外你应该考虑把不同的复选框放在不同的变量中,这样你就可以读出它们的状态了。如果你不想让这么多变量挂起,你可以把它们放到一个数组中。

<li>