現在、テキストフィールドの変数名を取得し、入力されたものを読み取るコードのこのメソッドがあります
public Object getValue(Component c) {
Object val = null;
if (c instanceof CustomWizardComponent) {
val = ((CustomWizardComponent) c).getValue();
} else if (c instanceof JTextComponent) {
val = ((JTextComponent) c).getText();
} else if (c instanceof AbstractButton){
val = ((AbstractButton) c).isSelected();
} else if (c instanceof JComboBox){
val = ((JComboBox) c).getSelectedItem();
} else if (c instanceof JList){
val = ((JList) c).getSelectedValues();
} else {
log.warn("Unknown component: "+c);
}
return val;
}
JTextField text = new JTextField();
text.setName("text");
add(text);
System.out.print("The component value is "+ page.getValue(text));
ここで、名前を JTextField コンポーネント名と同じ名前に設定しました。その文字列をコンポーネントに変換して同じフィールドを読み取るにはどうすればよいですか? 私の理想的な新しいメソッドは、文字列を取り込んでからコンポーネントに変換して値を取得できるはずです
public String getValue(String item)
{
Component c=item;
Object val = null;
if (c instanceof CustomWizardComponent) {
val = ((CustomWizardComponent) c).getValue();
} else if (c instanceof JTextComponent) {
val = ((JTextComponent) c).getText();
} else if (c instanceof AbstractButton){
val = ((AbstractButton) c).isSelected();
} else if (c instanceof JComboBox){
val = ((JComboBox) c).getSelectedItem();
} else if (c instanceof JList){
val = ((JList) c).getSelectedValues();
} else {
log.warn("Unknown component: "+c);
}
return val.toString();
}
JTextField textstring = new JTextField();
text.setName("textstring");
add(text);
System.out.print("The component value is "+ page.getValue("textstring"));