当前位置: 代码迷 >> Java相关 >> 已解决[求助]简单的AWT事件模型 不知错哪了
  详细解决方案

已解决[求助]简单的AWT事件模型 不知错哪了

热度:138   发布时间:2006-10-21 09:31:02.0
已解决[求助]简单的AWT事件模型 不知错哪了

书上一个简单的AWT事件例题  我改写了下   但是不知道错哪了   请各位指教下
import java.awt.*;
import java.awt.event.*;
class Test4 extends Frame
{
    Label p1 = new Label("");
    Button p2 = new Button("显示消息");

    public Test4()
    {
        super();
        setLayout(new FlowLayout());
        add(p2);
        add(p1);
        p2.addActionListener(this);
    }
    
    class Test4 extends Frame implements ActionListener
    {
        Label p1 = new Label("");
        Button p2 = new Button("显示消息");
    
    }
    
    public void actionPerformed (ActionEvent ae)
    {
        if(ae.getActionCommand().equals("显示消息"))
        {
            p2.setLabel("隐藏消息");
            p1.setText("您好,世界");
        }
        else if(ae.getActionCommand().equals("隐藏消息"))
        {
            p2.setLabel("显示消息");
            p1.setText("");
        }
    }
    


    public static void main(String[] args)
    {
        Test4 t1 = new Test4("控制面板演示程序");
        t1.setSize(400,300);
        t1.setVisible(true);        
    }
}    

[此贴子已经被作者于2006-10-21 20:59:39编辑过]

搜索更多相关的解决方案: AWT  模型  知错  

----------------解决方案--------------------------------------------------------

import java.awt.*;
import java.awt.event.*;
class Test4 extends Frame implements ActionListener
{
Label p1 = new Label("");
Button p2 = new Button("显示消息");
public Test4()
{
super();
setLayout(new FlowLayout());
add(p2);
add(p1);
p2.addActionListener(this);
}
/* class Test4 extends Frame implements ActionListener
{
Label p1 = new Label("");
Button p2 = new Button("显示消息");

}*/
public void actionPerformed (ActionEvent ae)
{
if(ae.getActionCommand().equals("显示消息"))
{
p2.setLabel("隐藏消息");
p1.setText("您好,世界");
}
else if(ae.getActionCommand().equals("隐藏消息"))
{
p2.setLabel("显示消息");
p1.setText("");
}
}
public static void main(String[] args)
{
Test4 t1 = new Test4(); //"控制面板演示程序");
t1.setSize(400,300);
t1.setVisible(true);
t1.setTitle("控制面板演示程序");
}
}
去掉红色的类,因为你的类和主类同名了;
如果想添加标题,按照你的思路,你的添加标题的方法应该写再构造函数里;
就是把蓝色的部分放在构造函数里,不用注销掉绿色部分;
我只是将它直接写出来而已


----------------解决方案--------------------------------------------------------
是不是有了 class Test4 extends Frame implements ActionListener 初始化
就可以不用class Test4 extends Frame 了????
class Test4 extends Frame implements ActionListener 可以代替class Test4 extends Frame ???
----------------解决方案--------------------------------------------------------
是的,在java里,一个类不可以多重继承,但可以继承很多个接口,这里的ActionListener就是个接口!!
----------------解决方案--------------------------------------------------------
知道了
----------------解决方案--------------------------------------------------------

又写了一段代码 导了个swing包

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

public class Test5 extends JFrame implements ActionListener
{
JButton t1 = new JButton("g");


public Test5(String s)
{
super(s);
setLayout(new FlowLayout());
add(t1);
t1.addActionListener(this);
}





public void actionPerformed(ActionEvent ae)
{
if(ae.getActionCommand().equals("g"))
{
JOptionPane.showMessageDialog(null,"成功",JOptionPane.CLOSED_OPTION);
}
}



public static void main(String[] args)
{
Test5 y1 = new Test5();
y1.setSize(100,100);
y1.setLocation(200,200);
y1.setVisible(true);
y1.setsetTitle("测试");

}




}


这个为什么就不能运行了呢?

[此贴子已经被作者于2006-10-21 10:48:36编辑过]


----------------解决方案--------------------------------------------------------

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

public class Test extends JFrame implements ActionListener
{
JButton t1 = new JButton("g");
public Test()
{
}

public Test(String s)
{
super(s);
setLayout(new FlowLayout());
add(t1);
t1.addActionListener(this);
}


public void actionPerformed(ActionEvent ae)
{
if(ae.getActionCommand().equals("g"))
{
JOptionPane.showMessageDialog(null,"成功");//参数有错
}
}


public static void main(String[] args)
{
Test y1 = new Test();//这里不传值将会调用默认的构造方法,即调用的是不传参数的构造方法,所以你的代码里还差一个默认构造方法(红色部分)
y1.setSize(100,100);
y1.setLocation(200,200);
y1.setVisible(true);
y1.setTitle("测试");
}
}


----------------解决方案--------------------------------------------------------
JOptionPane.showMessageDialog(null,"成功");//参数有错

原来是这里出错
多谢谢各位指正
----------------解决方案--------------------------------------------------------
  相关解决方案