java 怎样在一个类中改变另一个类中的对象的属性
比如,我在A类中定义了一个按钮JButton,想在B类中修改JButton上面的文本显示,请问该怎么办?以前听老师说了好多方法呢,可惜忘了,高手救救俺吧!classA{J...
比如,我在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;
}
} 展开
以前听老师说了好多方法呢,可惜忘了,高手救救俺吧!
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;
}
} 展开
2个回答
展开全部
请参考:
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;
}
}
你看下这个例子,应该会明白的。
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;
}
}
你看下这个例子,应该会明白的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询