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