Java JFormattedTextField在事件中setText()之后不更新文本

Java JFormattedTextField在事件中setText()之后不更新文本,java,swing,jformattedtextfield,Java,Swing,Jformattedtextfield,为什么在此事件后执行JFormattedTextField对象不更新文本 为什么在调用setText(“”之后,文本是清晰的,但是在jcombox1itemstatechanged之后,再次使用另一个状态,最后一个文本又回来了 public class AddItem extends JDialog { public ArrayList< JFormattedTextField> jtxts = new ArrayList<>();

为什么在此事件后执行
JFormattedTextField
对象不更新文本

为什么在调用
setText(“”
之后,文本是清晰的,但是在
jcombox1itemstatechanged
之后,再次使用另一个状态,最后一个文本又回来了

       public class AddItem extends JDialog {
        public ArrayList< JFormattedTextField> jtxts = new ArrayList<>();

           public AddItem(java.awt.Frame parent, boolean modal) {
              super(parent, modal);
              initComponents();
              for (int i = 0; i < 3; i++) {

                 jtxts.add(new JFormattedTextField());
                 jtxts.get(i).setVisible(false);
                 jtxts.get(i).setBounds(450, 80 + i * 40, 100, 20);
                 add(jtxts.get(i));

                 jlabels.add(new JLabel());
                 jlabels.get(i).setBounds(560, 80 + i * 40, 100, 20);
                 jlabels.get(i).setVisible(false);
                 jlabels.get(i).setLabelFor(jtxts.get(i));
                 add(jlabels.get(i));

              }

           }

      private void jComboBox1ItemStateChanged(java.awt.event.ItemEvent evt) {                    
           switch (jComboBox1.getSelectedIndex()) {

              case 0:
                 hideJtxtAndJlabels();
                 showJtxtAndJlabels(3);
                 break;
              case 1:
                 hideJtxtAndJlabels();                 
                 showJtxtAndJlabels(2);        
                 break;                        
          }
        }
    public void showJtxtAndJlabels(int size) {
          for (int i = 0; i < size; i++) {

             jtxts.get(i).setVisible(true);
             jlabels.get(i).setVisible(true);
          }
       }
private void hideJtxtAndJlabels() {
      for (int i = 0; i < jlabels.size(); i++) {
         System.out.println(jtxts.get(i).getText()); //print the last text
         jtxts.get(i).setText("");
         System.out.println(jtxts.get(i).getText()); //print "" but after change state jcombobox1 the last text is back
         jlabels.get(i).setVisible(false);
         jtxts.get(i).setVisible(false);

      }
   }


    }
public类AddItem扩展JDialog{
public ArrayListjtxts=new ArrayList();
公共附加项(java.awt.Frame父项,布尔模式){
超级(父级、模态);
初始化组件();
对于(int i=0;i<3;i++){
add(新的JFormattedTextField());
jtxts.get(i).setVisible(false);
jtxts.get(i).setBounds(450,80+i*40100,20);
添加(jtxts.get(i));
添加(新的JLabel());
jlabels.get(i).setBounds(560,80+i*40100,20);
jlabels.get(i).setVisible(false);
jlabels.get(i).setlabelforjtxts.get(i));
添加(jlabels.get(i));
}
}
private void JCombox1ItemStateChanged(java.awt.event.ItemEvent evt){
开关(jcombox1.getSelectedIndex()){
案例0:
hideJtxtAndJlabels();
showjtx和jlabels(3);
打破
案例1:
hideJtxtAndJlabels();
showjtx和jlabels(2);
打破
}
}
公共空白显示jtxtandjlabels(整数大小){
对于(int i=0;i
可能不是
JFormattedTextField
的有效值,它使用的是该字段在其模型中最后已知的“良好”值。您应该使用
set/getValue
来代替
可能不是
JFormattedTextField
的有效值,它使用的是该字段在其模型中的最后一个已知“良好”值。您应该改用
set/getValue