Java里面的简单问题 按钮按下去没有出现文字
来源:百度知道 编辑:UC知道 时间:2024/07/06 14:54:35
说明,单击按钮,后界面出现我要的文字
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"