2 qq 27626739 qq_27626739 于 2015.05.28 23:04 提问

java中JLabel中等号使用

JTextArea text = new JTextArea();
text = questionArea;
scrolltext.getViewport().add(text);
text.setText("1、问题:1+1=3对吗?\nA. 对 \nB. 不对");
为什么在第二行questionArea = text也可以呢?注:用 text = questionArea; 时,需要对questionArea new一个JTextArea,而使用questionArea = text时不需要对questionArea new一个对象。望大神解答,非常感谢!

4个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.05.28 23:12

用 text = questionArea; 时,需要对questionArea new一个JTextArea,
注:因为赋值给text后,后面有text.setText,如果questionArea不new一个实例(也就是JTextArea),后面就报空指针了

而使用questionArea = text时不需要对questionArea new一个对象
注:这是把text赋值给questionArea,是赋值,和questionArea 是否实例化没有关系。

tongyi55555
tongyi55555   2015.05.29 08:50

楼上正解。
text = questionArea;
你不对questionArea new一个JTextArea,你试试就知道了,后面的赋值代码无法运行了。

sl_18500
sl_18500   2015.05.29 09:25

等号的意思是,将后面的变量的值赋值给前面的变量,text = questionArea; 时,需要new,不然变量内存地址不存在,报空指针,而使用questionArea = text时不需要new,是把text赋值给questionArea,是将text在内存中的地址指定给questionArea,地址存在,无异常

qq_27626739
qq_27626739   2015.05.29 14:37

为什么用text = questionArea和questionArea = text 得到的结果都是questionArea 对象内的内容啊?后面用的是scrolltext.getViewport().add(text);这里是text啊?我不能理解

Csdn user default icon
上传中...
上传图片
插入图片