java - 带有 GridBagLayout 的 java 侧边栏

标签 java user-interface sidebar gridbaglayout layout-manager

我正在尝试为我正在开发的项目绘制侧边栏。我选择使用 GridBagLayout 是因为我对 BoxLayout 的局限性感到沮丧。有人可以帮助解释我做错了什么吗?我想要的是侧边栏包含两个 JPanel。我的代码将它们放置在侧边栏的中间位置而不是顶部。有人可以解释一下我在这里缺少什么吗?

    JPanel sideBar = new JPanel();
    sideBar.setBounds(0, 0, 180, (int)this.getBounds().getHeight());
    sideBar.setLayout(new GridBagLayout());


    JPanel optionBar = new JPanel();
    optionBar.setBorder(BorderFactory.createTitledBorder("Box1"));
    optionBar.setLayout(new GridBagLayout());


    JPanel buttonBar = new JPanel();
    buttonBar.setBorder(BorderFactory.createTitledBorder("Options"));
    buttonBar.setLayout(new GridBagLayout());


    GridBagConstraints c = new GridBagConstraints();
    c.fill = GridBagConstraints.HORIZONTAL;
    c.gridx = 0;
    c.ipady = 5;
    c.insets = new Insets(10,0,0,0);


    JButton simplify;
    simplify = new JButton("Open");
    simplify.addActionListener( this.listener );
    c.gridy = 0;
    buttonBar.add(simplify, c);

    JButton mergeButton;
    mergeButton = new JButton("Close");
    mergeButton.addActionListener( this.listener );
    c.gridy = 1;
    buttonBar.add(mergeButton, c);

    JButton splitButton;
    splitButton = new JButton("Merge");
    splitButton.addActionListener( this.listener );
    c.gridy = 2;
    buttonBar.add(splitButton, c);

    c.insets = new Insets(0,5,5,5);
    c.gridy = 0;
    sideBar.add(optionBar, c);

    c.gridy = 1;
    c.ipadx = 70;
    sideBar.add(buttonBar, c);

    return(sideBar);

最佳答案

如果您熟悉/更熟悉 HTML,您可以使用 table2gridbag 。它是一个小型控制台工具,它接受布局描述(HTML 表)并将其转换为用于配置 GridBagLayout 管理器的等效布局描述

关于java - 带有 GridBagLayout 的 java 侧边栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1905067/

相关文章:

java - 为什么以及在哪些情况下使用不同的类加载器两次加载 bean?

Java 将 jetty 从版本 8 更新到 9.2.7 : exception "Multiple Servlets to path"

java - 如何使缩小图像中的拖拽消失?

css - 边栏高度等于主要内容区域

jquery - Bootstrap左侧边栏切换菜单

wordpress - 如何为 WordPress 侧边栏创建短代码?

java - Intellij 没有选择 mapstruct 生成的类

java - SimpleDateFormat 忽略时区

python - Pyqt:执行命令

windows - Perl 程序的 Windows GUI 工具包有哪些好的选择?