【问题标题】:switching between different JPanels when pressing jtoolbar buttons按下 jtoolbar 按钮时在不同的 JPanel 之间切换
【发布时间】:2011-12-16 09:52:44
【问题描述】:

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

【问题讨论】:

  • 为了尽快获得更好的帮助,请发布SSCCE(就像我的答案中链接的那个 - 它是 SSCCE)。
  • 我不明白你的问题。你能用不同的词问它吗?

标签: java swing layout jpanel jtoolbar


【解决方案1】:

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

“主面板的内面板”的布局使用CardLayout,如图here

【讨论】:

  • +1 代表CardLayout;另请参阅此 example 使用 ActionJToolbar
  • 感谢您的回复。但我在内部面板区域显示新面板时遇到问题。
【解决方案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() 方法来做到这一点。

【讨论】:

  • 感谢您的回复。实际上我想在单击 JToolbar 按钮时更改主面板的内面板。
  • “Swing 程序应该覆盖paintComponent() 而不是覆盖paint()。”—The Paint Methods.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-02
  • 1970-01-01
相关资源
最近更新 更多