1

我正在设计一个父Jpanel包含JToolBar &&内部 JPanel。通过JToolBar 的操作,我需要用我已经设计的新 JPanel替换内部 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”是我的内部面板,但是在单击工具栏的按钮时它没有显示!

4

2 回答 2

4

我想在主面板的内面板中更改这些面板。

使用 aCardLayout作为“主面板的内面板”的布局,如下所示

游戏视图 高分视图

于 2011-10-28T04:10:02.517 回答
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()

于 2011-10-27T10:58:20.367 回答