كيف يمكنني الحصول على InputVerifier للعمل مع للتحرير JComboBox
سؤال
لدي JComboBox
مع العرف inputVerifyer
تعيين الحد MaxLength أنه للتحرير.
التحقق من طريقة لا يبدو للحصول على ما يسمى.
نفس verifyer يحصل الاحتجاج على JTextField
بخير
ما قد يكون به خطأ ؟
المحلول
لقد وجدت الحل.فكرت السماح للشخص القادم مع هذه المشكلة تعرف عن.
في الأساس.بدلا من وضع inputVerifier على تحرير وسرد قمت بتعيين أنه إلى أنه "مكون التحرير".
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 كونه عنصر مركب. أود أن اقترح تجنب مثل هذه سيئة واجهة المستخدم الحلول.
لا تنتمي إلى StackOverflow