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

メインパネルの内部パネルでこれらのパネルを変更したい。

ここCardLayoutに示すように、「メイン パネルの内部パネル」のレイアウトにはa を使用します。

ゲームビュー ハイスコ​​アビュー

于 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 に答える