首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Java中执行变量更改时执行某些操作

在Java中执行变量更改时执行某些操作
EN

Stack Overflow用户
提问于 2013-05-10 16:56:41
回答 2查看 1.4K关注 0票数 3

我想做以下事情:只要一个特定的变量( roomName )更改了它的值,JFrame的标题就应该被更改为roomName的新值。我唯一的问题是,JFrame在roomName更改之前就已经构建好了。

这是我的Connection.java类的一小段代码:

代码语言:javascript
复制
public Connection() {
    ...
    fieldName.addKeyListener(new KeyListener() {
        public void keyPressed(KeyEvent e) {
            if(e.getKeyChar() == KeyEvent.VK_ENTER) {
                setName();
            }
        }
    });
}

public void setName(){
    ChatFrame.frame.setVisible(true);
    ChatFrame.roomName = fieldName.getText();
    this.dispose();
}

另一个类ChatFrame.java应该执行上面描述的操作。我需要一个监听器还是一个线程?做这件事最好的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-10 17:00:56

脑海中浮现的一个简单解决方案是将变量包装到一个对象中,然后setter方法可以如下所示:

代码语言:javascript
复制
public void setNewValue(String newVal)
{
    if(!newVal.equals(currentVal)) {
        currentVal = newVal;
        // Value has changed. Call the relevant code.
    }
}
票数 3
EN

Stack Overflow用户

发布于 2013-05-10 17:00:14

首先,您应该让ChatFrame变量成为私有变量,公开一个方法来更改它:

代码语言:javascript
复制
public void setRoomName(String newName) {
    ...
}

然后,您可以为它添加一个侦听器,并在该方法中触发它。

请注意,这在逻辑上应该是一个实例变量,而不是目前看起来的静态变量。

(如果这不是您想要的,请编辑您的问题。目前还不清楚,部分原因是我们不确定setName方法在哪里,或者您是否真的有roomNameframe的静态变量。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16478526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档