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本身等等。谢谢。
展开
4个回答
展开全部
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();
}
展开全部
a.getParent();获取装a 组件,a.getComponents();获取a装着的组件。比如由button.getParent()可以获取到panel,panel.getComponents()可以获取到button和label。通过循环把他们取出来。
追问
循环为下策吧?再者说,即使我取到了父级容器去循环,那我也要知道循环到哪个一个停吧?我有2个Label哦。有没有其他办法呢?亲..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看附件吧 我都打上注释了 拖到eclipse里运行即可. 直接javac编译也能运行
追问
也非常感谢你的支持。
追答
哎 交上附件 提示我回答被禁了 ,需要申请 这一申请就是俩小时 我还不如不申了呢 哎
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假设你的类名叫ClassA
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
ClassA.this.label.setText("a");
}
});
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);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询