我必须创建一个小型表单页面,其中包含几个标签和文本字段,旁边还有按钮来采取行动。
在顶部设置了一个标签,显示一些常见信息。有一个函数可以为所有人设置边界并将它们添加到默认组件中。
但是,我无法在最终结果中看到组件。所有的声明都已经完成了。
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 吗?