我正在根据需要的输入类型动态构建我的 GUI 输入,例如:
如果我需要 adouble
和 aboolean
那么 GUI 创建的组件类型是 aJTextField
和 a JRadioButton
。
我定义了我希望每种类型的输入法静态如下:
private static Map<InputType, Class<? extends Component>> typeComponentMap = new HashMap<InputType, Class<? extends Component>>();
static {
typeComponentMap.put(InputType.INTEGER, JTextField.class);
typeComponentMap.put(InputType.DOUBLE, JTextField.class);
typeComponentMap.put(InputType.BOOLEAN, JRadioButton.class);
typeComponentMap.put(InputType.STRING, JTextField.class);
}
然后尝试将组件的值读回其中一种类型(进入流)时,我遇到了问题
我的方法目前看起来像这样:
public static void writeComponentValue(ObjectOutputStream stream, InputType type, Component component)
现在没有像getValue in这样的方法java.awt.Component
,所以我只能看到一个选项,即使用instanceof
并从那里检查子类......但我希望有更好的方法?
创建的流旨在传递给另一个对象,该对象旨在不知道有关 GUI 信息的任何信息。