繁体   English   中英

固定的JTextField的高度和宽度

[英]Fixed height and width for JTextField

我最近一直在使用Java Swing,当我尝试在彼此之间添加3个JTextField时,它们会填充整个JFrame。 但是我希望它们具有固定的高度和宽度。 我能做什么?

由于我是该主题的新手,因此我无法尝试许多事情。 我也没有在其他论坛上找到任何东西。

我的目标是为用户创建一个简单的GUI,以填写其凭据。 这些凭据应该填充到一个数组中,但我还没有到那儿。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class PeopleGUI extends JFrame{
    JPanel jp = new JPanel();
    JLabel jl = new JLabel();
    JTextField jt = new JTextField(30);
    JTextField jt1 = new JTextField(30);
    JTextField jt2 = new JTextField(30);
    JButton jb = new JButton("Enter");

    public PeopleGUI(){
        setTitle("PeopleGUI");
        setVisible(true);
        setSize(400,200);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        jp.setLayout(new BoxLayout(jp, BoxLayout.Y_AXIS));

        jp.add(jt);
        jp.add(jt1);
        jp.add(jt2);

        jt.addActionListener(new ActionListener(){

            public void actionPerformed(ActionEvent e){
                String input = jt.getText();
                jl.setText(input);
            }
        });

        jp.add(jb);

        jb.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                String input = jt.getText();
                jl.setText(input);
            }
        });

        jp.add(jl);
        add(jp);
    }

    public static void main(String[] args) {

        PeopleGUI p = new PeopleGUI();
    }
}

我希望JTextFields不能适应窗口的大小。

当前,它看起来像这样:
当前外观

但它看起来应该像这样:
预期的外观

在此处输入图片说明

通过将3个面板(每个面板都具有居中的FlowLayout )放在一个单独的GridLayout列中,可以轻松地复制该布局。

重要的部分是FlowLayout ,它将尊重其显示的组件的首选大小。

制作GUI时经常使用不同布局的组合 每个用户的想法都是处理整个用户界面的一小部分布局需求。 这是该答案的屏幕截图,其中通过标题边框列出了所使用的布局。

在此处输入图片说明

但是,我认为将标签的RHS和字段的LHS垂直对齐会更好。 为此,请使用单个GridBagLayout

您必须使用布局,例如BoxLayout。 您将在此处找到一些文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM