0

我必须创建一个小型表单页面,其中包含几个标签和文本字段,旁边还有按钮来采取行动。

在顶部设置了一个标签,显示一些常见信息。有一个函数可以为所有人设置边界并将它们添加到默认组件中。

但是,我无法在最终结果中看到组件。所有的声明都已经完成了。

     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 吗?

4

0 回答 0