我是Java新手并开发一个小项目。我正在制作一个用户必须注册的程序。我的Tabbed Pane上有3个不同的标签。我希望能够停用 第一个窗格中的下一个按钮,使用户无法< strong>继续到窗格2,除非窗格1上的所有text
字段都已已填充。我一直在网上搜索并找到了各种例子,但没有一个能在运行时工作。
我正在使用Netbeans。
private void txtFirstNameActionPerformed(java.awt.event.ActionEvent evt) {
if(txtFirstName.getText().trim().length() > 0)
btnNext1.setEnabled(true);
else
btnNext1.setEnabled(false);
}
答案 0 :(得分:1)
在您的窗格中创建所有文本字段的List
:
List<JTextField> list = new ArrayList<>();
将所有文本字段添加到该列表中。
然后,创建一个监听文本更改事件的通用DocumentListener
,每次文本更新发生时,扫描所有文本字段以查看它们是否已全部填充:
DocumentListener listener = new DocumentListener() {
@Override
public void removeUpdate(DocumentEvent e) { changedUpdate(e); }
@Override
public void insertUpdate(DocumentEvent e) { changedUpdate(e); }
@Override
public void changedUpdate(DocumentEvent e) {
boolean canEnable = true;
for (JTextField tf : list) {
if (tf.getText().isEmpty()) {
canEnable = false;
}
}
btnNext1.setEnabled(canEnable);
}
};
并将listener
添加到列表中的每个文本字段中:
for (JTextField tf : list) {
tf.getDocument().addDocumentListener(piecesListener);
}