我设计父 Jpanel 包含 JToolBar && 内部JPanel 。通过 JToolBar的操作,我需要将内部JPanel 替换为 new JPanel ,我已经设计了。 按下jtoolbar按钮时在不同的JPanel之间切换。 我如何在 NetBeans IDE ?
中执行此操作final CardLayout c = new CardLayout();
jPanel2 = new JPanel(c);
jPanel2.add(new BarChartPanel(), "CHART");
jPanel2.add(new ReportViewPanel(), "REPORT");
ClassLoader cldr = this.getClass().getClassLoader();
java.net.URL imageURL = cldr.getResource("Images/barimages.jpg");
ImageIcon aceOfDiamonds = new ImageIcon(imageURL);
JButton btnChart = new JButton(aceOfDiamonds);
btnChart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
c.show(jPanel2, "CHART");
}
});
jToolBar1.add(btnChart);
jToolBar1.addSeparator();
jToolBar1.setFloatable(false);
这里'jPanel2'是我的内部面板,但点击工具栏的按钮时,它不是diplaying!
答案 0 :(得分:4)
答案 1 :(得分:2)
对于多个面板,你可能想要这样的东西:(不是一个完美的代码,但这就是方式,我只是指着你的方式):
public class MultiPanels {
private JScrollPane getContent() {
Dimension d = new Dimension(300,200);
JPanel panel = new JPanel(new GridBagLayout());
panel.add(getPanel(d, 6, Color.red));
}
private JScrollPane getPanel(Dimension d, int rows, Color color)
{
JPanel panel = new JPanel(new GridBagLayout());
panel.setBackground(color);
}
}
现在,在问题中,更改主面板的外观如果您要更改外观,则不可能,如果您的意思是只需改变外观,比如背景,你可以通过覆盖paintComponent()
方法来实现。