2016-03-29 9 views
2

jComboBoxを検証して、デフォルト項目以外の項目を選択する方法を教えてください。ComboBoxのHibernateバリデータ

ユーザーがアイテムを選択しなかったかどうかを確認する必要があります。だから、JComboBoxの値は、私を検証するために)getSeqQue(に追加するHibernateのバリデータ注釈になりますどのような私のモデルクラスで

enter image description here

@NotEmpty(message="Please fill the username field!") 
public String getUsername() { 
    return this.username; 
} 

public void setUsername(String username) { 
    this.username = username; 
} 

@NotEmpty(message="Please fill the password field!") 
public String getPassword() { 
    return this.password; 
} 

public void setPassword(String password) { 
    this.password = password; 
} 

public String getSeqQue() { 
    return this.seqQue; 
} 

public void setSeqQue(String seqQue) { 
    this.seqQue = seqQue; 
} 

「scurityの質問を選択してください」となりますjComboBox?

答えて

1

カスタムメッセージでJComboBoxを検証するには、カスタム制約バリデーターを作成するだけです。

次の例を参照してください。

MyModel.javaを

public class MyModel { 

    @ValidComboBox //this is the annotation which validates your combo box 
    private String question; 

    //getter and setter 
} 

ValidComboBox.java //注釈

import java.lang.annotation.*; 
import javax.validation.*; 

@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE }) 
@Retention(RetentionPolicy.RUNTIME) 
@Constraint(validatedBy = ComboBoxValidator.class) 
@Documented 
public @interface ValidComboBox { 
String value = "Please select a security question"; 

String message() default "Please select a security question."; 

Class<?>[]groups() default {}; 

Class<? extends Payload>[]payload() default {}; 
} 

ComboBoxValidator.java

import javax.validation.*; 
public class ComboBoxValidator implements ConstraintValidator<ValidComboBox, String> { 

private String value; 

@Override 
public void initialize(ValidComboBox arg0) { 
    this.value = arg0.value; 

} 

@Override 
public boolean isValid(String question, ConstraintValidatorContext arg1) { 
    if(question.equalsIgnoreCase(value)){ 
     return false; 
    } 
    return true; 
} 
} 

このようなあなたのJComboBoxに項目を追加します。

JComboBox<String> jComboBox = new JComboBox<>(); 
jComboBox.addItem("Please select a scurity question"); 
jComboBox.addItem("Question 1"); 
jComboBox.addItem("Question 2"); 

、次の行を使用すると、検証するためにアクションを実行するときに追加する必要があります。

ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory(); 
Validator validator = validatorFactory.getValidator(); 

String question = jComboBox.getSelectedItem().toString(); 
MyModel model = new MyModel(); 
model.setQuestion(model); 

Set<ConstraintViolation<MyModel>> constraintViolations = validator.validate(model); 

if (!constraintViolations.isEmpty()) { 
     String error = ""; 
     for (ConstraintViolation<MyModel> constraintViolation : constraintViolations) { 
       error += constraintViolation.getMessage(); 
       JOptionPane.showMessageDialog(null, error); 
     } 
} 

それは、を表示します。あなたは質問を選択せず​​にリクエストを送信しようとするとセキュリティの質問を選択してください。

関連する問題