我必须创建一个小表单页面,其中包含几个标签和文本字段,并在该按钮上执行操作。
在顶部设置了一个标签,显示了一些常用信息。 有一个函数可以设置所有的边界,并将它们添加到默认的Component。
但是,我无法在最终结果中看到组件。 所有声明都已经完成。
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);
}
}
在上面的代码中没有显示Label。但是,文本字段将显示。
第二个问题,我可以在setCustomBounds函数中添加组件吗? 第三个问题,我可以将内存分配给setCustomBounds函数中的组件,而不是分配并传递给setCustomBounds。