Я работал над диалоговым окном для настольного приложения, которое я сейчас разрабатываю.Диалог должен иметь заранее заданное количество текстовых полей (другими словами, переменную), но я столкнулся со странной ошибкой при кодировании части кода инициализации: когда компоненты JTextField инициализируются, последнее решает занять всеокно.Я пробовал много странных способов изменить способ его добавления в окно, но он продолжает делать это, несмотря ни на что (кстати, я установил текст по умолчанию на индексы полей, чтобы я знал, что он всегда последний).Вот код:
package com.main;
import java.awt.EventQueue;
import java.awt.TextField;
import javax.swing.JFrame;
public class classAddingDialog extends startingMenuWindow {
private JFrame frame1;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
classAddingDialog window = new classAddingDialog();
window.frame1.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public classAddingDialog() {
initialize();
}
private void initialize() {
frame1 = new JFrame();
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
int count = 18,i; //startingMenuWindow.countForNewClass;
frame1.setBounds(100, 100, 450, 20+50*count/2+50);
TextField[] nameInputs=new TextField[count];
for(i=0;i<count;i++) {
nameInputs[i]=new TextField();
if(i<Math.ceil((double) count/2)) {
nameInputs[i].setBounds(10, 10+50*i, 100, 30);
}else {
nameInputs[i].setBounds(180, (int) (10+50*(i-Math.ceil((double) count/2))), 100, 30);
}
nameInputs[i].setText(Integer.toString(i));
frame1.add(nameInputs[i]);
}
}
}
Также не прикладывайте усилий к проверке позиции и границ последнего JTextField, которые я уже сделал, и функция
nameInputs[i].getBounds();
возвращает правильную позицию (где онадолжно быть), но на самом деле это просто охватывает все окно.
Если кто-то знает, в чем проблема, пожалуйста, сообщите мне.Заранее спасибо.