我的项目中有2个文本字段。第一个文本字段是txtNumA,第二个文本字段是txtNumB。我禁用了txtNumB。当txtNumA不为空时,将启用txtNumB。好吧,这是我尝试过的代码的一部分:private void txtNumKeyTyped(java.awt.event.KeyEvent evt) { if(!(txtNumA.getText().trim().equals(""))){ txtNumB.setEnabled(true); } else { txtNumB.setText(null); txtNumB.setEnabled(false); }}实际上它是可行的,但并不完美。仅当我在txtNumA中键入2个或更多字符时,它才起作用。我需要的是,当我键入一个或多个字符时,将启用txtNumB。我的代码有什么问题? 最佳答案 这里发生的是如果发生KeyTyped和KeyPressed事件,输入仍不会提供给TextField,这就是为什么它不起作用,并且在您键入第二个字符之后必须起作用,到那时第一个字符必须已经到达TextField。所以请使用方法来处理这种情况。KeyReleased是第一个TextField,t是第二个。t.addKeyListener(new KeyListener(){ @Override public void keyTyped(KeyEvent e) { } @Override public void keyPressed(KeyEvent e) { } @Override public void keyReleased(KeyEvent e) { JTextField bt = (JTextField)e.getSource(); if(bt.getText().trim().length()>0){ t1.setEnabled(true); } else t1.setEnabled(false); } });
08-06 10:05