Java中怎么点击一个button然后改变另一个button的内容?

比如我在一个叫View的类中点击了button1,然后button1有个监听器叫myActionlistener(这是自己定义的另一个类),求教怎么让这个监听器改变另外一个在View中的button的内容?(比如把它的名字改成but)

比如说你想改变的Button对象叫 button2
你在View类中把button2这个对象设置成成员变量 然后把myActionlistener这个类设置成成员内部类
即写在View类内部 然后当点击button1的时候 对button2.setText("")传入一个String值就可以改变button2按钮上面的内容了~追问

程序要求用MVC的架构写,我的myActionlistener是一个控制类,和View这个界面要分离的0 0

追答

嗯 那这样写

class MyActionListener implements ActionListener{

  //把这个类的对象添加到button1上面 构造方法传刚才


  //我说的button2 然后btn.setText()就行了
 
 JButton btn;

 public MyActionListener(JButton btn){

  this.btn = btn;

 }

 @Override

 public void actionPerformed(ActionEvent e){

  if(e.getSource() == button1){

   btn.setText("******");

  }
 }

}

追问

代码是这样的嘛?:MyActionListener ma=new MyActionListener(button2)
button1.add(ma);
那如果我有32个button和button1关联起来怎么办?

追答

不好意思我刚才代码写错了 应该这么写

class MyActionListener implements ActionListener{
  
 JButton btn1;
 JButton btn2;
 
 public MyActionListener(JButton btn1,JButton btn2){
  this.btn1 = btn1;
  this.btn2 = btn2;
 
 }
 @Override
 public void actionPerformed(ActionEvent e){
  if(e.getSource() == btn1){
   btn2.setText("******");
  }
 }
}

MyActionListener ma=new MyActionListener(button1,button2)
 button1.add(ma);

如果要和32个button关联的话只能new32个MyActionListener对象了 或者构造方法里传32个对象...

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-08-02
网页版的话,以jsp页面举例
在点击按钮一的时候,更换按钮2的值的话,需要在按钮一的onclick事件中,先通过document.getElementById()方法传入按钮2的ID,得到按钮二的对象,之后进行属性的设置
假设按钮一的ID为button1,按钮2的ID为button2
点击事件内的代码
var button2 = document.getElementById("button2");
button2.value = "" ; //引号内为需要变更的值

如果是javaSwing的话,同样的道理,先获取到对象,之后更改值。
第2个回答  2013-11-30
myActionlistener(这是自己定义的另一个类)

把这个类改成在主类中定义的匿名内部类,所有添加监听事件都使用匿名内部类来做,这样你的所有 button 其实都是主类的子段,然后直接使用 主类.this.button.setText() 即可。

搜索关键词:java addactionlistener 匿名内部类追问

我们的作业要求用MVC呀,这样变成内部类了不就没有分离的效果了么?

第3个回答  2015-07-25
点击按钮,根据另一个button的id获取button,然后就可以修改button 的内容了
相似回答