Java JList GUI 格式化

标签 java swing jpanel jlist

我在格式化我正在开发的程序的 GUI 时遇到问题。我需要有四个按钮,上面有一个 JList。我的 JList 一直出现在所有按钮旁边,而不是它们上方。谁能指出我解决问题的正确方向?

import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;


public class Test extends JPanel {

    private static final long serialVersionUID = 1L;

    private JList jlist; 

    public static void main(String[] args) {
        JFrame boxOptions = new JFrame("Calculator");
        boxOptions.setSize(0,0);
        boxOptions.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        boxOptions.setResizable(false);
        boxOptions.setLayout(new BorderLayout());
        boxOptions.add(new Test(), BorderLayout.CENTER);
        boxOptions.pack();
        boxOptions.setLocationRelativeTo(null);
        boxOptions.setVisible(true);

    }

    public Test(){  
        setLayout(new GridLayout(1, 4, 5, 5));

        add(new JButton("add"));
        add(new JButton("Check In"));
        add(new JButton("Check Out"));
        add(new JButton("Delete"));


        String[] Titles = {"one", "two", "three"};
        jlist = new JList(Titles);
        jlist.setVisibleRowCount(3);
        add(new JScrollPane(jlist), BorderLayout.NORTH);

    }

}

最佳答案

您将 Test JPanel 类的布局设置为 GridLayout,然后尝试使用 BorderLayout.NORTH 说明符向其中添加组件 - 这不符合规范,因为该说明符仅适用于 BorderLayout,对您来说毫无意义GridLayout-使用测试 JPanel。

解决方案:嵌套 JPanel。让外部 JPanel 使用 BorderLayout,并使用 BorderLayout.NORTH 说明符将列表的 JScrollPane 添加到此外部 JPanel,然后创建一个使用 GridLayout 的内部 JPanel,该内部 JPanel 保存 JButton,并将其添加到 BorderLayout 中的主外部 JPanel。中心位置。

最重要的是:阅读 Swing 教程,您可以在其中找到 here ,特别是有关使用布局管理器的部分,因为无需猜测这些内容。

关于Java JList GUI 格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23258601/

相关文章:

Java - JPanel 及其内容如何设置边界

java - 在我的以下程序中摆脱 java.lang.NullPointerException

java - 滚动 Pane 中的多种文本颜色?

java - MoSKito Java监控工具

java - JFreeChart y 轴图例随着小数字消失

java - 如果 Swing View 是由 Controller 中的新线程设置的,那么它是否需要同步方法

java - JPanel 中的绘制位置和尺寸错误

java - 无法在 JDialog 中设置 JPanel 的大小

java - 如何检查输入值是整数还是 float ?

java - 在元素重置之前找到它曾经是什么数字