不同类中的Swing组件

时间:2013-06-20 01:58:14

标签: java swing constructor components packaging

这里可能是一个简单的问题,正在努力学习使用摆动制作GUI并取得轻微进展,但又打了另一个减速带。我试图将GUI组件分组在不同的类中以保持我的类较小并允许更灵活的GUI,但我构建了一个组件如何将其调用到我的主类。下面发布的是用于制作框架和组件的代码。我想像我打电话的方式存在问题,但是关于如何调用它的想法已经不多了。任何想法都会受到赞赏.....对于尝试将组件添加到frmMainMenu中的JFrame的问题不是很清楚,问题是该组件在当前运行时不出现在框架中

使用JFrame的主类

public class frmMainMenu {
    public static void main(String main[]){
        //Create Frame
        JFrame frmMainMenu = new JFrame();

        //Define Layout Manager
        GridBagLayout gridBag = new GridBagLayout();
        GridBagConstraints c = new GridBagConstraints();
        frmMainMenu.setLayout(gridBag);

        //Add Components

        //Create Left Container
        c.fill = GridBagConstraints.VERTICAL;
        c.weighty = 1;
        c.gridx = 0;
        c.gridy = 1;
        c.ipadx = 30;

        frmMainMenu.add(new comLeftToolBar(),c);

        frmMainMenu.setExtendedState(JFrame.MAXIMIZED_BOTH);

        frmMainMenu.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

        //Display Frame
        frmMainMenu.setVisible(true);
    }
}

组件代码

public class comLeftToolBar extends JPanel{
    public comLeftToolBar() {

    JPanel comLeftContainer = new JPanel();
    GridBagLayout leftGridBag = new GridBagLayout();
    comLeftContainer.setLayout(leftGridBag);
    GridBagConstraints b = new GridBagConstraints();

    JToolBar comLeftToolBar = new JToolBar(JToolBar.VERTICAL);
    b.gridx = 0;
    b.gridy = 0;
    b.ipady = 50;

    JButton comNavButton = new JButton();
    JButton comProButton = new JButton();

    comLeftToolBar.add(comNavButton);
    comLeftToolBar.add(comProButton);

    comLeftContainer.add(comLeftToolBar,b);
    comLeftContainer.setBorder(BorderFactory.createLineBorder(Color.black));
    }
}

1 个答案:

答案 0 :(得分:1)

  

问题是当前运行时组件没有出现在框架中

你的班级是一个小组。但随后您创建了另一个面板(comLeftContainer)并向此面板添加组件。但是,您不会向ComLeftToolBar面板添加任何组件,因此它仍为空。

对于一个简单的解决方案,您可以在课程的底部使用:

add( comLeftContainer );

当然,这不是最好的解决方案。这将为您提供以下结构:

  • 的JPanel
    • 的JPanel
      • JToolBar的
        • 按钮
        • 按钮

没有必要有这么复杂的结构。工具栏是直接添加到框架的组件。

如果您想创建一个可以添加到框架中的类,那么请查看How to Use Tool Bars上的Swing教程以获得更好的结构。