无法在功能中向Flow Layout添加元素

时间:2015-02-01 21:13:55

标签: java swing layout-manager setbounds

我必须创建一个小表单页面,其中包含几个标签和文本字段,并在该按钮上执行操作。

在顶部设置了一个标签,显示了一些常用信息。 有一个函数可以设置所有的边界,并将它们添加到默认的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。

0 个答案:

没有答案