gpt4 book ai didi

java - JFrame 标 checkout 现重叠

转载 作者:行者123 更新时间:2023-11-30 01:59:21 24 4
gpt4 key购买 nike

我刚刚编写了一个程序,其中有一个包含 JLabel 组件数组的 JFrame。该数组获取由 for 循环分配的单个标签的位置:

for(int i=0; i<label_entries.length; i++){
label_entries[i].setLocation(10, i*30);
label_entries[i].setSize(120,30);
dialog.add(label_entries[i]);
}

不要混淆,我的框架的名称是“dialog”。

有一个简单的问题:for 循环不能像 for 循环那样工作,我不知道为什么,这是我的框架中的结果:

Imgur .

不要关心单个标签条目,有趣的是Telefon的位置。

如果我将循环的开头设置为以下内容,则会出现同样的问题,只是使用另一个标签。

for(int i=0; i<label_entries.length-1; i++){...}

这是完整的代码

JFrame dialog = new JFrame();
dialog.setBounds(25, 50, 500, 500);
dialog.setTitle("Eintrag hinzufügen");
dialog.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
dialog.setVisible(true);

JLabel[] label_entries = new JLabel[11];
JTextField[] textfields = new JTextField[11];
label_entries[0] = new JLabel("Vorname :");
label_entries[1] = new JLabel("Nachname :");
label_entries[2] = new JLabel("Nummer :");
label_entries[3] = new JLabel("Geburtstag :");
label_entries[4] = new JLabel("Land :");
label_entries[5] = new JLabel("PLZ :");
label_entries[6] = new JLabel("Stadt :");
label_entries[7] = new JLabel("Strasse :");
label_entries[8] = new JLabel("Hausnummer :");
label_entries[9] = new JLabel("E-Mail :");
label_entries[10] = new JLabel("Telefon :");

for(int i=0; i<label_entries.length; i++){
label_entries[i].setLocation(10, i*30);
label_entries[i].setSize(120,30);
dialog.add(label_entries[i]);
}

这应该更容易理解。

最佳答案

一个明显的问题是您正在设置组件的绝对位置。通常,LayoutManager 用于此目的。

要清除 JFrame 内容 Pane 的默认布局管理器,请在创建框架后将其设置为 null

JFrame dialog = new JFrame();
dialog.setLayout(null);

关于java - JFrame 标 checkout 现重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53403711/

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