您的位置:首页 > 产品设计 > UI/UE

黑马程序员_JavaGUI总结

2011-09-22 22:21 489 查看
---------------------- android培训、java培训、期待与您交流! ----------------------

修改组件的默认事件处理方式:

调用相应processXXXEvent事件;

调用enablesEvent,可以在没有注册事件监听器的情况下,仍然对事件作出反应;

编程实例(当鼠标移动到按钮上面时,按钮就移动开,这样鼠标永远也无法点击按钮)

import java.awt.*;

import java.awt.event.*;

class MyButton extends Button

{

private MyButton another;

public void getAnother(MyButton another)

{

this.another=another;

}

public MyButton(String s)

{

super(s);

this.enableEvents(AWTEvent.MOUSE_MOTION_EVENT_MASK);

}

protected void processMouseMotionEvent(MouseEvent e)

{

another.setVisible(true);

setVisible(false);

}

}

class MyWindowListener extends WindowAdapter

{

public void windowClosing(WindowEvent e)

{

e.getWindow().setVisible(false);

e.getWindow().dispose();

System.exit(0);

}

}

class testmybutton

{

public static void main(String[] args)

{

Frame f=new Frame("永远也抓不到我。。。");

f.setSize(800,600);

MyButton b1=new MyButton("你来抓我啊");

MyButton b2=new MyButton("你来抓我啊");

f.add(b1,"East");

f.add(b2,"West");

b1.getAnother(b2);

b2.getAnother(b1);

f.addWindowListener(new MyWindowListener());

f.setVisible(true);

b2.setVisible(false);

}

}

system.in和system.out是两个特殊的流对象,前者对应键盘,后者对应显示器,前者是inputstream类型的,后者是printstream类型的,printstream是outputstream的一个子类。

GUI(graphical user interface) 图形用户界面,jdk提供awt和swing两个包,用于GUI程序开发

GUI可分为两大类,基本组件和容器,分别是java.awt.Component和java.awt.Container的直接和间接子类

GUI的程序部分由AWT线程管理

创建窗体的实例:

import java.awt.*;

class gui

{

public static void main(String[] args)

{

Frame f=new Frame("hello world!");

f.setVisible(true);

f.setSize(500,300);

f.add(new Button("weijingning"));

try

{

Thread.sleep(1000);

}

catch(Exception e){}

// f.setVisible(false);

f.dispose();

}

}

事件处理机制

1.事件:对组件的操作就是一个事件;

2.事件源:发生操作的组件就是事件源;

3.事件处理器:处理事件的成员方法;



一个画图板的实例:

import java.awt.*;

import java.awt.event.*;

class DrawLine2

{

Frame f=new Frame("大家来画图");

public static void main(String[] args)

{

new DrawLine2().init();

}

public void init()

{

f.setSize(1000,800);

f.setVisible(true);

f.addMouseListener(new MouseAdapter()

{

int orgX;

int orgY;

public void mousePressed(MouseEvent e)

{

orgX=e.getX();

orgY=e.getY();

}

public void mouseReleased(MouseEvent e)

{

Graphics g=f.getGraphics();

g.setColor(Color.ORANGE);

g.setFont(new Font("行书",Font.ITALIC|Font.BOLD,30));

/* g.drawString(new String(orgX+","+orgY),orgX,orgY);

g.drawString(new String(e.getX()+","+e.getY()),e.getX(),e.getY());*/

g.drawLine(orgX,orgY,e.getX(),e.getY());

}

});

f.addWindowListener(new WindowAdapter()//实现窗口关闭的功能

{

public void windowClosing(WindowEvent e)

{

f.setVisible(false);

f.dispose();

System.exit(0);

}

});

}

}

---------------------- android培训、java培训、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: