JAVA中初始化问题,代码在中的变量不能被初始化

我创建了一个按钮,给按钮一个鼠标监听器。按下按钮会获得一个文本区的字符串给masage,当我在其他包中调用getMasage方法,得到的字符串是123而不是文本区的字符串。

import java.awt.Color;
import java.awt.event.MouseEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JTextArea;

public class setButton11 extends setButton10{
private JTextArea information = null;
private JTextArea jText = null;
public String masage = "123";

public String getMasage(){
    return masage;
}


public void addListener(JButton jButton, Color fColor, ImageIcon fIcon, JTextArea information, JTextArea jText){
    this.information = information;
    this.jText = jText;
    super.addListener(jButton, fColor, fIcon);  
}


public void mouseClicked(MouseEvent e) {
    masage = information.getText();
    information.setText(null);

}

}图片

4个回答

这个检查下你按下鼠标后会不会走到你写得mouseClicked事件中?看不到你的父类是怎么写的,不好判断,你自己打个断点看看吧。

tongyi55555
JonsonJiao 回复qq_19671911: 再强调一遍啊,你的masage现在没有改变初始值123为你想要的结果,说明你的单击事件没有触发,你在mouseClicked里面打一个断点,看看能不能进入进去。
4 年多之前 回复
qq_19671911
qq_19671911 这个masage的值是发给客户端的,只要masage不为null,就会一直发送masage的值给服务器。只要按钮按下,masage获得的值就会被发出去的。 现在是客户端一直在发masage的初始值123给服务器,如果把masage的初始值设置为null,客户端就不发任何东西。
4 年多之前 回复
tongyi55555
JonsonJiao 回复qq_19671911: 因为message的值改变是在按钮按下之后才修改的,因此你获取他时需要保证按钮被按下了一次,如果没有按下过,你得到的是初始值123
4 年多之前 回复
qq_19671911
qq_19671911 按钮按下是可以得到文本区的信息的,我测试过。这个类跟父类关系不大,主要是监听器的一些方法通用我懒得写就继承下。我另写了个main方法测试masage的值,发现一直都是123,不管我按不按这个按钮。
4 年多之前 回复

debug 看看代码有没有执行

qq_19671911
qq_19671911 在mouseClicked里面使用masage得到的值是我想要的。
4 年多之前 回复
qq_19671911
qq_19671911 mouseClicked被执行了
4 年多之前 回复

可不可以用 information.getText().toString();来试一下

qq_19671911
qq_19671911 我试了,得到的masage还是123。无论我怎么试,有在mouseClicked方法里面打印masage的时候,才是正确的。
4 年多之前 回复

不是同一个对象啊,要同一个对象才能得到message,要不肯定是初值

qq_19671911
qq_19671911 没用
4 年多之前 回复
IT80hcbz
80后传播者-_- 回复qq_19671911: 你可以把message设成static试试,我觉得不是同一个对象
4 年多之前 回复
qq_19671911
qq_19671911 这两个masage不是同一个吗
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问