【问题标题】:How to make a Frame with Multiple Panels Like this如何像这样制作具有多个面板的框架
【发布时间】:2015-12-23 22:48:46
【问题描述】:

我试过这个布局,但它只显示一个面板。 我需要左面板(面板 1)比第二个面板小一点。 它目前在中心显示菜单和面板 1。

我尝试了所有布局示例,但仍然无法显示面板 2。

我虚心等待任何可能有助于解决我的问题的建议。

public PrintBillPanel() {
    GridLayout lay1 = new GridLayout(0, 2, 10, 5);
    mainPanel = new JPanel();
    mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.X_AXIS));
    printBill = new JPanel();
    showBill = new JPanel();
    printBill.setLayout(lay1);
    mainPanel.add(printBill);
    mainPanel.add(showBill);
    mainPanel.setVisible(false);
}

【问题讨论】:

    标签: java swing layout jframe jpanel


    【解决方案1】:

    您没有设置任一面板的大小,因此它们的大小可能为零。您也没有做任何使面板在视觉上不同的事情。我不确定您为什么将 mainPanel 设置为不可见。在设置大小和背景以便可以区分面板之后,代码就可以工作了。

    java.awt.EventQueue.invokeLater(() ->  {
        JFrame frm = new JFrame();
        JPanel mainPanel = new JPanel();
        frm.add(mainPanel);
        BoxLayout layout = new BoxLayout(mainPanel, BoxLayout.X_AXIS);
        mainPanel.setLayout(layout);
        JPanel panel1 = new JPanel();
        panel1.setBackground(Color.red);
        panel1.setPreferredSize(new Dimension(100, 300));
        mainPanel.add(panel1);
        JPanel panel2 = new JPanel();
        panel2.setBackground(Color.blue);
        panel2.setPreferredSize(new Dimension(200, 300));
        mainPanel.add(panel2);
        frm.add(mainPanel);
        frm.pack();
        frm.setVisible(true);
    });
    

    【讨论】:

      猜你喜欢
      • 2017-02-24
      • 1970-01-01
      • 2016-05-20
      • 1970-01-01
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多