java 怎样在一个类中改变另一个类中的对象的属性

比如,我在A类中定义了一个按钮JButton,想在B类中修改JButton上面的文本显示,请问该怎么办?
以前听老师说了好多方法呢,可惜忘了,高手救救俺吧!
class A{
JButton jb1=new JButton("A");
public void print1(){
System.out.println(jb1.getText());
}
public void print2(){
new B().set();//调用B类中的set方法改变jb1的值
System.out.println(jb1.getText());
}
}
class B{
JButton jb2=new classA().jb1;
public void set(){
jb2.setText("B");
}
}
可实际是,我B类并没有改变了A类按钮的文本值啊!而且也没报错。
我下了仔细想了想,好像是B类又新建了一个按钮,而不是用A类中的按钮,所以才改不了。
好了,我已经懂了。既然需要在A中创建按钮,而修改按钮的方法都放在B类中,那么把创建按钮的方法也放在B类中不就行了。呵呵
Class A{
JButton jb=new B().getButton();
}
Class B{
JButton jb=null;
public JButton getButton(){
jb=new JButton();
return jb;
}
}

这个简单啊。获得这个JButton这个对象,修改该属性就可以了。
具体方法,你把这个JButton对象作为一个对象作为参数传给B类的一个方法,在这个方法中修改这个JButton的该属性。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-01-29
请参考:
import javax.swing.*;
class A{
JButton jb = new JButton("A");
}
public class B{
public static void main(String[] args){
A a = new A();
System.out.println(a.jb.getText()); //打印输出A
a.jb.setText("B");
System.out.println(a.jb.getText()); //打印输出B
}
}
没有什么问题。

给你个例子你看下:
class A{
private int a;
int b;
public void setA(int _a){
this.a = _a;
}
public int getA(){
return this.a;
}
}

class B{
public static void main(String[] args){
A instance = new A();
//改变A类的私有属性,因为A类a属性为私有的,所以要通过A类的SET方法来设置,当然你也可以在A类里定义构造方法,通过构造方法来改变A类的属性。
instance.setA(20);

//改变A类的公有属性
instance.b = 100;
}
}

你看下这个例子,应该会明白的。本回答被提问者采纳
相似回答