gpt4 book ai didi

java - 不同类的 Swing 组件

转载 作者:行者123 更新时间:2023-12-01 14:25:24 25 4
gpt4 key购买 nike

这可能是一个简单的问题,致力于学习使用 swing 制作 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));
}
}

最佳答案

issue is that the component doesn't appear in the Frame when run currently

您的类(class)是一个小组。但随后您创建另一个面板 (comLeftContainer) 并向该面板添加组件。但您没有向 ComLeftToolBar 面板添加任何组件,因此它保持为空。

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

add( comLeftContainer );

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

  • J面板
    • J面板
      • J工具栏
        • 按钮
        • 按钮

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

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

关于java - 不同类的 Swing 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17204148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com