JFormattedTextField在设计视图中消失

时间:2017-03-25 21:59:00

标签: java swing paintcomponent

enter image description here

所以我正在研究一个JFrame,并创建了一些JFormattedTextFields。每次我在Desing View和" Source"之间切换时组件保留在设计视图中。但突然间每次切换到设计模式时,Textfield都会消失,但是当我执行程序时,它们会被显示出来。可能是什么原因?

这是我添加Textfields的面板:

private JPanel getPanel_2() {
    if (panelFishData == null) {
        panelFishData = new JPanel();
        panelFishData.setBounds(161, 23, 253, 264);
        panelFishData.setLayout(new GridLayout(4, 2, 0, 0));
        panelFishData.add(getLblName());
        panelFishData.add(getFormatedTextFieldNameFish());
        panelFishData.add(getLblMinWeight());
        panelFishData.add(getFormattedTextFieldMinWeight());
        panelFishData.add(getLblMaxWeight());
        panelFishData.add(getFormattedTextFieldMaxWeight());
        panelFishData.add(getLblstOccurence());
        panelFishData.add(getFormattedTextFieldFirstOccurence());
    }
    return panelFishData;
}

这是我的一个JFormattedTextFields:

private JFormattedTextField getFormattedTextFieldMinWeight() {
    MaskFormatter mf = createMinWeightMask();

    if (formattedTextFieldMinWeight == null) {
        formattedTextFieldMinWeight = new JFormattedTextField(mf);
    }
    return formattedTextFieldMinWeight;
}

private MaskFormatter createMinWeightMask() {
    MaskFormatter mf;
    try{
        mf = new MaskFormatter("### g");  
    }
    catch(Exception ex){
        mf=null; 
    }
    return mf;
}

2 个答案:

答案 0 :(得分:0)

如果您使用netbeans:

检查你要添加JFormattedTextFields的面板的布局,然后转到Navigator面板选择你的Field再次启用它。

答案 1 :(得分:0)

输入代码:

    MaskFormatter mf = createMinWeightMask();

在if语句中。它应该工作。