【发布时间】:2021-09-28 03:26:51
【问题描述】:
我想在面板中添加两个文本字段。面板的布局是网格布局。 我为文本字段的高度和宽度添加了 setBounds,但 setBounds 无法正常工作。 这是我的代码...
import java.awt.*;
import javax.swing.*;
class gui1
{
public static void main(String[] args)
{
JFrame frm = new JFrame();
JPanel pan = new JPanel();
Button btn = new Button("SUBMIT");
TextField txt1 = new TextField();
TextField txt2 = new TextField();
Label lbl = new Label("LOGIN FORM");
txt1.setBounds(20,20,100,200);
txt2.setBounds(20,20,200,300);
frm.setLayout(new BorderLayout());
pan.setLayout(new GridLayout(1,2));
pan.add(txt1);
pan.add(txt2);
frm.add(pan,BorderLayout.CENTER);
frm.add(lbl,BorderLayout.NORTH);
frm.setSize(800,500);
frm.setVisible(true);
frm.setDefaultCloseOperation(frm.EXIT_ON_CLOSE);
}
}
【问题讨论】:
-
布局管理器可以计算边界,因此不需要手动设置边界。添加所需布局的草图。
-
我如何设置文本字段的大小
-
首先,不要混合使用 Swing 和 AWT 组件。使用所有 Swing。 “我如何设置文本字段的大小”,最简单的方法是通过接受多个列的构造函数。引用的大小将被使用的
Font大小进一步改变。 一般提示: 1) 将frm.setSize(800,500); frm.setVisible(true);(第一行是猜测,总是错误的)更改为frm.pack(); frm.setVisible(true);。 2) 以最小尺寸提供 ASCII 艺术或 GUI 的 预期 布局的简单绘图,如果可调整大小,则具有更大的宽度和高度 - 以显示应如何使用额外空间。 .. -
.. 3) Java GUI 必须在不同的语言环境中使用不同的 PLAF 在不同的操作系统、屏幕尺寸、屏幕分辨率等上工作。因此,它们不利于像素完美布局。而是使用布局管理器,或combinations of them 以及white space 的布局填充和边框。 4) 在
txt1.setBounds(20,20,100,200); txt2.setBounds(20,20,200,300);中可以看到避免尝试设置组件边界的(许多)原因之一 - 它们具有相同的 x,y 起始位置,因此是第二个 .. -
.. 会掩盖第一个。 学习如何使用(和组合)布局。
标签: java swing user-interface awt