【发布时间】:2014-02-04 12:20:57
【问题描述】:
我想每 30 秒更新一次 Swing Gui,其中一些标签将从数据库连接中获取新值。 到目前为止,我每次都尝试创建一个新的 Gui 并处理旧的 Gui,但这不是一个优雅的解决方案,无论如何也不起作用。
public class Gui extends JFrame {
private boolean open;
//setter, getter
public Gui() {
JPanel pane = new JPanel(new BorderLayout());
int numberOfRows = 9;
int numberOfColumns = 2;
pane.setLayout(new GridLayout(numberOfRows, numberOfColumns));
String wState;
if(open){wState="Window open";}
else{wState="Window closed";}
JLabel windowState= new JLabel(wState);
pane.add(windowState);
new Timer(5000, new WindowState()).start(); }
private class WindowState implements ActionListener {
public void actionPerformed(ActionEvent e) {
Gui g = new Gui();
g.setOpen(true);
}
我知道它不会像这样工作,但我希望我想做什么变得很清楚。问题是我无法访问 actionPerformed() 方法中的 Gui 元素。我只是想用在 actionPerformed() 方法中检索到的新值更新 windowState 标签。
【问题讨论】:
-
引用了几种方法here。
标签: java swing user-interface