簡體   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