我想在Java JFrame
中添加我的类的字段名称列表及其各自的值。这些字段当然可以在程序执行期间改变值,我希望这个更改能够在我的GUI中动态显示。例如,如果我在课程private int networkId;
中有一个字段BaseStation
,我怎样才能让它出现在课程BaseStationFrame
的框架中?
答案 0 :(得分:1)
我不是100%理解这个问题,但如果通过JavaBeans,l2fprod PropertySheet能做你需要的吗?
答案 1 :(得分:1)
一种常见的方法是从组件中访问允许您操作组件值的方法。
这是一个使用文本区域的简单示例。
private final static String newline = "\n";
private JTextArea textArea;
public void init() {
//Make sure your components are not null;
textArea = new JTextArea();
}
public void actionPerformed(ActionEvent evt) {
String text = textArea.getText();
textArea.append(textArea + newline);
}
//Get set methods
根据您的需求和变量类型,您可能需要解析或使用特殊方法。 我建议你阅读documentation for the javax.swing package.
同样在oracles网站上有一个关于javax.swing GUI
的精彩教程答案 2 :(得分:1)
嗯......您可以存储包含字段名称的静态最终字符串,并设计字段名称的字符串表示与该字段值之间的某种关联。
或者,您可以为所有字段使用Map,为它们定义键值对。当你想调用字段时,你会做一个Map.get(),当你想要打印它们时,你可以做类似的事情
Set s = map.keySet()
for(Object o : s) {
print(o.toString() + " = " + map.get(o).toString())
}
当然,这是一个有希望让你滚球的Sudocode
祝你好运:)
答案 3 :(得分:1)
如果您希望您的用户界面可以访问您班级的私人字段,那么您将没有太多选择
PropertyChangeEvent
。然后,您的UI可以使用getter获取初始值,并在更改字段值时使用事件更新UI。您甚至可以通过使用反射来获取所有的getter来为此编写一个相当通用的UI组件,但是如果它只适用于几个类,那么这可能是过度的