Java的GUI中,根据事件获取label并修改其值。

新建了一个Frame下面有一个Panel,在Panel中有一个button和2个label,现在想通过点击button后,改变其中一个label的显示text值,主要是不... 新建了一个Frame下面有一个Panel,在Panel中有一个button和2个label,现在想通过点击button后,改变其中一个label的显示text值,主要是不知道在button监听事件中如何获取label对象并修改值。本人菜鸟,求细节。最好能指出如何获取页面上所有的东西,比如panel,frame和button本身等等。谢谢。 展开
 我来答
jiminsxtpy
推荐于2017-11-25 · TA获得超过234个赞
知道小有建树答主
回答量:190
采纳率:100%
帮助的人:198万
展开全部
public class Test {
 JFrame myframe = new JFrame();
 JLabel label1 = new JLabel("label1");
 JLabel label2 = new JLabel("label2");
 JButton button1 = new JButton("确定");
 JButton button2 = new JButton("取消");
 public void init() {
  myframe.setSize(300, 200);
  myframe.getContentPane().setLayout(null);
  myframe.setTitle("java 小程序");
  label1.setBounds(20, 20, 120, 27);
  label2.setBounds(20, 40, 120, 27);
  button1.setBounds(20, 60, 60, 27);
  button2.setBounds(100, 60, 60, 27);
  button1.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    label1.setText("你点了确定");
   }
  });
  button2.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    label2.setText("你点了取消");
   }
  });
  myframe.add(label1);
  myframe.add(label2);
  myframe.add(button1);
  myframe.add(button2);
  myframe.show();
 }
 public static void main(String[] args) {
  new Test().init();
 }
百度网友c2ac8041
2013-06-27 · TA获得超过880个赞
知道小有建树答主
回答量:468
采纳率:100%
帮助的人:261万
展开全部
a.getParent();获取装a 组件,a.getComponents();获取a装着的组件。比如由button.getParent()可以获取到panel,panel.getComponents()可以获取到button和label。通过循环把他们取出来。
追问
循环为下策吧?再者说,即使我取到了父级容器去循环,那我也要知道循环到哪个一个停吧?我有2个Label哦。有没有其他办法呢?亲..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小圣12345
2013-06-27 · TA获得超过820个赞
知道小有建树答主
回答量:198
采纳率:0%
帮助的人:158万
展开全部

看附件吧 我都打上注释了  拖到eclipse里运行即可.  直接javac编译也能运行

追问
也非常感谢你的支持。
追答
哎 交上附件 提示我回答被禁了 ,需要申请 这一申请就是俩小时 我还不如不申了呢 哎
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Vxider
2013-06-27 · TA获得超过108个赞
知道小有建树答主
回答量:126
采纳率:0%
帮助的人:126万
展开全部
假设你的类名叫ClassA

button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

ClassA.this.label.setText("a");

}

});
更多追问追答
追问
这个有点问题吧?我就一个类,里面一个main方法,方法里面声明了以上所有的东西,这样ClassA.this.label这种方式根本连label都获取不到哦?ClassA.只能点出来main方法。不能点出来main方法里面的其他东西啊。。亲怎么办?
追答
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Test3 extends JPanel{
private JLabel label;
private JButton jbOK;

public Test3()
{
label = new JLabel();
jbOK = new JButton("OK");
this.add(label);
this.add(jbOK);
jbOK.addActionListener(new ActionListener()
{

@Override
public void actionPerformed(ActionEvent e)
{
// TODO Auto-generated method stub
label.setText("asd");
}
});
}
public static void main(String[] args) throws IOException {
JFrame frame = new JFrame();
frame.add(new Test3());
frame.setSize(300,300);
frame.setVisible(true);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式