gpt4 book ai didi

java - 如何将字符串转换为组件以读取值

转载 作者:行者123 更新时间:2023-12-01 14:03:13 25 4
gpt4 key购买 nike

目前我有这种代码方法,它接受文本字段的变量名并读取已输入的内容

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 组件名称相同。如何将该字符串转换为组件以读取相同的字段?我理想的新方法应该能够接收 String 然后转换为组件并获取值

 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"));

最佳答案

根据经验,您可以使用 Component#setName()并维持 Map<String, Component> 这可以让你查找 Component按名称使用 String返回者 Component#getName()作为 key 。

理论上,您可能想要查看更高级别的抽象,例如 wizard framework 可能提供的抽象。 .

关于java - 如何将字符串转换为组件以读取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19175639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com