편집 가능한 JComboBox와 함께 작동하도록 InputVerifier를 얻는 방법은 무엇입니까?
문제
나는 가지고있다 JComboBox
관습으로 inputVerifyer
편집 가능으로 설정된 경우 MaxLength를 제한하도록 설정합니다.
확인 메소드가 호출되지 않는 것 같습니다.
동일한 검증자가 다음에서 호출됩니다. JTextField
괜찮은.
내가 뭘 잘못하고 있는 걸까요?
해결책
해결 방법을 찾았습니다.나는 이 문제가 있는 다음 사람에게 이 사실을 알리고 싶다고 생각했습니다.
원래.ComboBox에 inputVerifier를 설정하는 대신 "Editor Component"로 설정합니다.
JComboBox combo = new JComboBox();
JTextField tf = (JTextField)(combo.getEditor().getEditorComponent());
tf.setInputVerifier(verifyer);
다른 팁
코드의 작은 부분을 보여주세요.
package inputverifier;
import javax.swing.*;
class Go {
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() { public void run() {
runEDT();
}});
}
private static void runEDT() {
new JFrame("combo thing") {{
setLayout(new java.awt.GridLayout(2, 1));
add(new JComboBox() {{
setEditable(true);
setInputVerifier(new InputVerifier() {
@Override public boolean verify(JComponent input) {
System.err.println("Hi!");
return true;
}
});
}});
add(new JTextField());
setDefaultCloseOperation(EXIT_ON_CLOSE);
pack();
setVisible(true);
}};
}
}
JComboBox가 복합 구성 요소인 경우 문제가 있는 것 같습니다. 그런 불쾌한 UI 솔루션은 피하는 것이 좋습니다.
제휴하지 않습니다 StackOverflow