java试用(3)awt,UI

程序 (注意要点: control, layout, 事件处理)

代码
import java.awt.*;
import java.awt.event.*;

public class MyFrame extends Frame{

    
private TextField tf;

    
public static void main(String args[ ]){
        MyFrame fr 
= new MyFrame("Hello Out There!");
        fr.InitUI();
    }

    
public MyFrame (String str){
        
super(str); //调用父类的构造方法
    }

    
public void InitUI()
    {
        
//Frame
        
//setSize(200,200);
        setBackground(Color.red);
        

        
//setLayout(null);
        
//setLayout(new FlowLayout());
        
//setLayout(new BorderLayout());        //BAD
        setLayout(new GridLayout(2,3));        
        
//setLayout(new CardLayout());     //crash
        
//setLayout(new GridBagLayout());

        
//menus
        MenuBar mb = new MenuBar();

        Menu m1 
= new Menu("File");
        Menu m2 
= new Menu("Edit");
        Menu m3 
= new Menu("Help");
        mb.add(m1);
        mb.add(m2);
        mb.setHelpMenu(m3);

        setMenuBar(mb);

        
// controls
        Panel pan=new Panel();
        pan.setSize(
100,100);
        pan.setBackground(Color.yellow);

        Button b1 
= new Button("Button1");
        b1.addActionListener(
new ButtonHandler());

        Button b2 
= new Button("Button2");
        b2.addActionListener(
new ActionListener(){
                
public void actionPerformed(ActionEvent e)
                {
                    System.out.println(
"Action 2 occurred");
                    tf.setText(
"Action 2 occurred");
                }
            });
        
        tf
=new TextField(30);

        
// frames
        add(pan);
        add(b1);
        add(b2);
        add(tf);

        pack();

        addMouseMotionListener(
new MouseMotionAdapter(){ //匿名类开始
            public void mouseDragged(MouseEvent e){
                String s
="Mouse dragging: x="+e.getX()+"Y="+e.getY();
                tf.setText(s); }
        } ); 
//匿名类结束

        setVisible(
true);
    }
}

class ButtonHandler implements ActionListener {
    
//实现接口ActionListener才能做事件ActionEvent的处理者
    public void actionPerformed(ActionEvent e)
    
//系统产生的ActionEvent事件对象被当作参数传递给该方法
    {
        System.out.println(
"Action occurred");
    
//本接口只有一个方法,因此事件发生时,系统会自动调用本方法,需要做的操作就把代码写在则个方法里。
    }
}


编译运行

 javac MyFrame.java

java MyFrame

posted on 2010-10-01 12:25  cutepig  阅读(407)  评论(0编辑  收藏  举报

导航