首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手动开发Java GUI

手动开发Java GUI
EN

Stack Overflow用户
提问于 2014-05-05 12:10:27
回答 2查看 79关注 0票数 1

我正在试着做一个面板,上面有4个项目。它们是JLabelJTextFieldJLabelJTextField

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

在底部我需要3个按钮。

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

只有3列是个好主意吗?

这是我到目前为止所知道的:

代码语言:javascript
复制
                    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);
EN

回答 2

Stack Overflow用户

发布于 2014-05-05 12:18:19

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

北面板

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

在其中添加JLabelJTextFieldJLabelJTextField

中心面板

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

南面板

根据您想要实现的目标,使用FlowLayoutGridBagLayoutGridLayout来创建JPanel

将按钮添加到其中。

将其组合在一起

创建一个带有BorderLayoutJPanel,将“北”面板添加到NORTH位置,将“中心”面板添加到CENTER位置,将“南”面板添加到SOUTH位置

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

有关更多详细信息,请查看Laying Out Components Within a Container

票数 2
EN

Stack Overflow用户

发布于 2014-05-05 12:14:23

也许可以从主布局的BorderLayout开始。然后,可以将零部件添加到PAGE_START (北)、LINE_START (西)和PAGE_END (南)。有关更多信息和示例,请查看Using Layout Manager上的Swing教程中的部分。

当然,当您想要在单个区域中显示多个组件时,也可以使用面板。因此,您的按钮将首先添加到面板中。

此外,请遵循标准的命名约定。变量名称不应以大写字符开头(即BodyArea,TitleText)。你像(panel,list)这样的变量是正确的,所以要保持一致。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23464654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档