gpt4 book ai didi

java - 简单的java gui显示不工作

转载 作者:行者123 更新时间:2023-12-01 18:47:33 25 4
gpt4 key购买 nike

import javax.swing.*;
import java.awt.*;
public class gui {
JFrame f;
JLabel fname,fsex,age;
JTextField t1;
JTextField t2;
JTextField t3;
gui(){
frame();
}

private void frame() {
// TODO Auto-generated method stub
f = new JFrame();
f.setVisible(true);
f.setSize(500,500);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fname = new JLabel("First Name");
fname.setSize(100,100);
fsex = new JLabel("Sex");
fsex.setSize(100,100);
age = new JLabel("Age");
age.setSize(100,100);
t1 = new JTextField();
t1.setSize(100,100);
t2 = new JTextField();
t2.setSize(100,100);
t3 = new JTextField();
t3.setSize(100,100);
JPanel panel = new JPanel();
panel.setSize(100,100);
panel.add(fname);
panel.add(t1);
panel.add(fsex);
panel.add(t2);
panel.add(fname);
panel.add(age);
panel.add(t3);
f.add(panel);


}
}

我想知道我是否能解释为什么我会得到这样的显示!我在屏幕顶部中心得到了尺寸不定的小线形小部件,而不是按照它们编码的顺序。一旦我设置了尺寸,我不应该得到正确形状的小部件吗?而且小部件不是不可见的,它们是可见的但无序的。

最佳答案

Am i not supposed to get properly shaped widgets once i have set sizes.

不,您不应该设置尺寸,这是布局管理器的工作。面板使用 FlowLayout,它仅以首选尺寸水平显示所有组件。

JLabel 将根据您分配给标签的文本具有首选大小。

对于文本字段,您需要通过指定要显示的字符数来指示大致大小。您可以使用以下方法来执行此操作:

JTextField textField = new JTextField(10);

首先阅读 How to Use Flow Layout 上的 Swing 教程一个例子和一个更好的结构化程序。也就是说,您的代码应该在事件调度线程上执行。

关于java - 简单的java gui显示不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17127110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com