【问题标题】:Second JPanel and JTexField look too cramped第二个 JPanel 和 JTexField 看起来太局促了
【发布时间】:2020-09-13 04:25:46
【问题描述】:

我有一个使用两个 JPanel 的应用程序。其中之一是PaintPanel。第二个面板,jtextfield 和 jtextarea 工作正常,但它们在右侧看起来太局促了。我尝试使用 setSize() 更改大小,但没有成功。

画板代码

public void center() {
        jpCenter = new PaintPanel();
        jpCenter.addMouseListener(this);
        jpCenter.setSize(100, 100);
        jpCenter.setBackground(Color.white);
        add(jpCenter, BorderLayout.CENTER);
    }

聊天框面板代码

public void east() {

        // CREATE EAST Panel
        gl = new GridLayout(4, 1);
        jpEast = new JPanel();
        jpEast.setSize(200, 200);
        jpEast.setLayout(gl);
        jpEast.setBackground(Color.white);

        label = new JLabel("Number of shapes: ");
        jpEast.add(label);
        // ADD TEXT FIELD
        jtf = new JTextField();
        jtf.setText("");
        jtf.setSize(200, 200);
        jpEast.add(jtf);

        // ADD BUTTON
        jbSend = new JButton("Send");
        jbSend.setEnabled(false);
        jbSend.setSize(20, 60);
        jpEast.add(jbSend);
        jbSend.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                send(jtf.getText());
                jtf.setText("");
            }
        });

        // ADD TEXT AREA
        jta = new JTextArea("");
        jta.setSize(100, 100);
        jpEast.add(jta);

        // ADD EAST panel
        add(jpEast, BorderLayout.EAST);
    }

【问题讨论】:

    标签: java swing jtextfield layout-manager jtextarea


    【解决方案1】:

    避免设置组件的大小,因为这会使它们无法在所有平台上正常工作,特别是对于 JTextArea,如果将其保存在 JScrollPane(这是 JTextArea 所属的位置)中,它将不允许它正确扩展。另请注意,大多数布局管理器甚至不考虑组件的大小,而是考虑其首选大小。

    相反,设置 JTextAreas 的行和列属性(通过 JTextArea(int row, int column) 构造函数最容易完成)、JTextField 的列属性、其他组件的字体大小(如果需要)。然后,当您在顶级窗口(通常是 JFrame)上调用 pack() 时,在添加所有组件之后但在将其设置为可见之前,允许您的容器 (JPanel) 布局管理器和组件自己的首选尺寸大小都适当。

    如需更具体的帮助,请考虑发布您获得的 GUI 与您尝试实现的 GUI 的图像。

    【讨论】:

    • 我刚刚发布了图片。我得到的布局是上面的图像,我正在尝试为聊天框实现如下布局@DontKnowMuchBut Getting Better
    • @HecticPlatypus:谢谢你,但我仍然有点困惑你在追求什么。对不起。
    猜你喜欢
    • 1970-01-01
    • 2012-12-22
    • 2017-07-08
    • 1970-01-01
    • 2018-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多