Java里面的简单问题 按钮按下去没有出现文字

来源:百度知道 编辑:UC知道 时间:2024/07/06 14:54:35
Java里面的简单问题 按钮按下去没有出现文字
说明,单击按钮,后界面出现我要的文字
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JButtonDemo extends JFrame
{
public JButtonDemo()
{
super("JButtonDemo");
Container c=getContentPane();
c.setLayout(new FlowLayout());
setSize(400,200);

JLabel label1=new JLabel(":Hello");//这里要怎么改

c.add( label1 );//这里要怎么改

JButton button2=new JButton("确定");
button2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

System.JLabel.setText("ddddd");//这里要怎么改

}
});

c.add(button2);

JButton button1=new JButton("退出");
button1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0)

内隐类要使用局部变量,请将变量修饰为 final
所以第一个怎么改就改成: final JLabel label1=new JLabel("hello");
第二个问题是正常的!
第三个怎么改就可以改成: label1.setText("ddddd");

把程序调试一下,它回提示你监听代码为内部类,访问局部变量label1不合法,须把label声明为final最终类型。我认为生命为finl太国死板,程序扩展性不好。
我觉得应该把JLabel的声明放在构造函数外部,声明为全局变量。然后在构造函数内部创建对象。
public class JButtonDemo extends JFrame
{
JLabel label1; //对象声明
public JButtonDemo()
{
…………
label1=new JLabel(":Hello");//创建对象
c.add( label1 ); //这里应该没问题
…………
label.setText("ddddd"); //这里要这样改

动作监听那块儿应该得有个if吧.
改成
public void actionPerformed(ActiongEvent evt){
if (evt.getSource()==b1){
label1.setText("dddd");
}
}
不知道这个是不是你想要的.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JButtonDemo extends JFrame {
public JButtonDemo() {
super("JButtonDemo"