将变量及其值添加到Java GUI

时间:2011-12-07 19:14:17

标签: java user-interface

我想在Java JFrame中添加我的类的字段名称列表及其各自的值。这些字段当然可以在程序执行期间改变值,我希望这个更改能够在我的GUI中动态显示。例如,如果我在课程private int networkId;中有一个字段BaseStation,我怎样才能让它出现在课程BaseStationFrame的框架中?

4 个答案:

答案 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)

如果您希望您的用户界面可以访问您班级的私人字段,那么您将没有太多选择

  • 使用反射访问这些字段(不推荐)
  • 将这些字段设为公开(不建议使用)或打包显示,并将所有代码放在一个包中(不建议使用)
  • 添加不错的getter和setter,并在这些字段更改时触发PropertyChangeEvent

然后,您的UI可以使用getter获取初始值,并在更改字段值时使用事件更新UI。您甚至可以通过使用反射来获取所有的getter来为此编写一个相当通用的UI组件,但是如果它只适用于几个类,那么这可能是过度的