手动Java GUI开发

标签 java swing user-interface layout

我正在尝试制作一个顶部有 4 个项目的面板。这些是 JLabelJTextFieldJLabelJTextField

在中心,我需要一个 JTextArea,在它的左边是一个可滚动的 JList

在底部我需要 3 个按钮。

最好的布局管理器是什么?我应该怎么做?

只有 3 列是个好主意吗?

enter image description here

这是我目前所拥有的:

                    JPanel panel = new JPanel();

        JTextField IDLabel = new JLabel("ID: ");
        IDLabel.setBounds(10, 10, 80, 25);
        panel.add(IDLabel);

        JTextArea IDText = new JTextField(5);
        IDText.setBounds(100, 10, 160, 25);
        panel.add(IDText);

        JLabel TitleLabel = new JLabel("Title: ");
        TitleLabel.setBounds(10, 10, 80, 25);
        panel.add(TitleLabel);

        JTextField TitleText = new JTextField(10);
        TitleText.setBounds(100, 10, 160, 25);
        panel.add(TitleText);


        JList list = new JList(new String[]{"test1", "test22"});

                list.setFixedCellWidth(150);
                list.setFixedCellHeight(50);
                list.setFont(new Font("Serif",Font.BOLD,16));
                list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        panel.add(list);

        JTextArea BodyArea = new JTextArea();
        BodyArea.setSize(200, 200);
        BodyArea.setText("Test area");
        panel.add(BodyArea);

最佳答案

例如,您很可能需要使用布局组合(AKA 复合布局)

北面板

创建一个 JPanel 并根据您想要实现的目标为其分配一个 FlowLayoutGridBagLayoutGridLayout .

向其中添加JLabelJTextFieldJLabelJTextField

中心面板

使用 BorderLayout 创建一个 JPanel。将JTextArea添加到CENTER位置,将JList添加到WEST位置

南面板

使用 FlowLayoutGridBagLayoutGridLayout 创建一个 JPanel,具体取决于您想要实现的目标。

向其中添加按钮。

把它放在一起

创建一个带有BorderLayoutJPanel,将“north”面板添加到NORTH位置,将“center”面板添加到CENTER 位置和“south”面板到 SOUTH 位置

您可以使用一个容器和一个 GridBagLayout,但这需要大量工作。

看看Laying Out Components Within a Container了解更多详情

关于手动Java GUI开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23464654/

相关文章:

java - 哪个线程运行所有 AWT/swing 事件处理代码?

c# - GUI 编程 c++ 或 c#

java - 如何将 JRebel 与 Mule ESB 集成?

java - 传递对方法的引用 Java

java - 在 TestNG 中使用 @Test(enabled = false) 而不是注释 @Test 注释的优势

java - 如何更新放入 JTextField 的文件中的行

java - 尝试解析 XML 并将信息显示到 GUI 上

Java Swing 应用程序,对话框检查范围内的数字

java - 当选择一个值时,在 JComboBox 中仅显示一个值

java - 使用新数据刷新 JEditorPane