私はいくつかのラジオボタンを持つアプリケーションを構築しています。ユーザーが選択することに基づいて、私は何か別のことをしなければなりません。今はOptionGroupを使ってラジオボタンを作成しましたが、ラジオボタンを区別する方法を理解できないようです。純粋なJavaでは、各ラジオボタンを作成し、それらをButtonGroupオブジェクトと一緒にグループ化するので、かなり単純ですが、私は本当にわかりません。ドキュメントはいつものように深刻なので、私はちょっと立ち往生しています。ここではあなたのためにいくつかのコードです:vaadinのラジオボタンを区別する
public class ConverterComponent extends CustomComponent{
private TextField name2 = new TextField();
private OptionGroup single;
private TextField userInput;
private TextField result;
private Button submit;
private Button reset;
private static final String conversion1 = "Km to miles";
private static final String conversion2 = "Miles to Km";
private static final long serialVersionUID = 1L;
public ConverterComponent(){
submit = new Button("Submit");
reset = new Button("Reset");
result = new TextField();
userInput = new TextField();
result.setEnabled(false);
result.setVisible(false);
userInput.setVisible(false);
reset.setVisible(false);
submit.setVisible(false);
single = new OptionGroup("Select the conversion");
single.addItems(conversion1, conversion2);
reset.addClickListener(new Button.ClickListener(){
@Override
public void buttonClick(ClickEvent event){
clearFields();
getResult().setVisible(false);
}
});
submit.addClickListener(new Button.ClickListener(){
@Override
public void buttonClick(ClickEvent event) {
getResult().setVisible(true);
//NEED TO KNOW WHICH RADIO BUTTON HAS BEEM CLICKED SO THAT i CAN DECIDE WHICH CONVERSION TO USE
}
});
single.addValueChangeListener(new Property.ValueChangeListener(){
@Override
public void valueChange(ValueChangeEvent event) {
clearFields();
/*System.out.println("You chose: " + event.getProperty().getValue().toString() + "\n");
System.out.println("other line " + event.getProperty() + "\n" + " id is " + single.getId() + " size " + single.size());*/
//System.out.println("event is " + event.getProperty().getValue());
switch(event.getProperty().getValue().toString()){
case conversion1:
System.out.println(conversion1);
break;
case conversion2:
System.out.println(conversion2);
break;
}
displayFields();
}
});
}
public OptionGroup getRadioButtons(){
return single;
}
public TextField getResult(){
return result;
}
public TextField getUserInput(){
return userInput;
}
public void displayFields(){
//getResult().setVisible(true);
getUserInput().setVisible(true);
getResetButton().setVisible(true);
getSubmitButton().setVisible(true);
}
public Button getResetButton(){
return reset;
}
public Button getSubmitButton(){
return submit;
}
public void clearFields(){
getResult().setValue("");
getUserInput().setValue("");
}
public void validateInputs(){
}
}
ベア心の中で私は将来的にはより多くのオプションを追加する必要がありますが、私は、ユーザーがラジオボタンを選択し、どんなにあるに取得しようとしています彼は入力用に2つの入力ボックスを、もう1つは読み取り専用で変換を表示します。要点は、選択が行われ、入力ボックスが表示されたときに、入力を取得して正しく変換できる必要があるため、ユーザーがどの選択を行ったかを知る必要があることです。上記のコードでは、ユーザーの選択肢を表示していますが、チェックしたり比較したりすることはありません。私がしたいのは理想的です: - 最初のラジオボタンをクリックしてください - どのラジオボタンが選択されているかを確認して、どの変換を使用するかを知っています。
は、あなたがこのドキュメンタリーをseennがありますか? https://vaadin.com/docs/-/part/framework/components/components-optiongroup.html –