Невозможно добавить элемент в макет потока в функции
Мне нужно создать небольшую страницу формы, содержащую несколько надписей и текстовых полей рядом с этим и кнопку, чтобы принять меры по этому.
Вверху была установлена метка, которая отображает некоторую общую информацию. Существует одна функция, которая устанавливает границы для всех и добавляет их в компонент по умолчанию.
Тем не менее, я не вижу компонентов в конечном результате. Все декларации были сделаны раньше.
lbl_empid = new JLabel("Employee-ID");
/*lbl_empid.setBounds(xAxis, lbl_title.getHeight() + lbl_title.getY() + gap, width, height);
lbl_empid.setFont(lblFont);*/
setCustomBounds(lbl_empid, "label", lbl_title);
add(lbl_empid);
txt_id = new JTextField();
txt_id.setBounds(lbl_empid.getWidth() + lbl_empid.getX() + gap, lbl_title.getHeight() + lbl_title.getY() +gap, width, height);
add(txt_id);
Функции setCustomBounds находятся ниже
private void setCustomBounds(Object elemnt, String type, JLabel refLabel){
JLabel lbl;
JTextField txtField;
int xField, yField;
//System.out.println("Inside set customBounds");
System.out.println("Setting the bounds for "+type);
//set Bounds(x,y) for Label
if (type.equalsIgnoreCase("label")){
lbl=((JLabel)elemnt);
System.out.println("setting label bounds with referen to above label");
xField=xAxis;
yField=refLabel.getY()+height+gap;
lbl.setBounds(xField, yField, width, height);
lbl.setFont(lblFont);
//add(lbl);
}
//set Bounds(x,y) for TextFiled
if(type.equalsIgnoreCase("txtBox")){
txtField=((JTextField)elemnt);
System.out.println("setting Text Box bounds with reference to beside label");
xField = xAxis+width+gap;
yField = refLabel.getY();
txtField.setBounds(xField, yField, width, height);
add(txtField);
}
}
в приведенном выше коде ярлык не отображается. Тем не менее, текстовое поле отображается.
Второй вопрос, можно ли добавить компонент в функции setCustomBounds? Третий вопрос, можно ли выделить память для компонентов в функции setCustomBounds вместо выделения и передачи в setCustomBounds.