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

JavaSE基础:GUI

2012-12-29 22:44 134 查看
------- android培训java培训、期待与您交流! ----------

GUI图形用户界面

两个包:java.AWT.*;   java.Swing.*;

窗体是一个独立的进程。

创建图形化界面:

    1、创建Frame窗体

    2、对窗体进行基本设置(大小、位置、布局)

    3、定义组件

    4、将组件通过add方法添加到窗体

    5、让窗体显示:setVisible(true) ;

事件监听机制特点:

1、事件源:就是awt或者swing包中的那些图形界面组件。

2、组件

3、监听器:将可以出发某一事件的动作(不止一个)都已经封装到了监听器中。

4、事件处理

事件:每一个事件源都有自己特有的对应事件和共性事件

addWindowListener(WindowListener wl);

addActionListener(ActionListener al);

setPreferredSize用于布局管理器。

在使用布局管理器的时候,可以不使用setSize(),因为布局管理器会自动调用组件的setSize方法设置组件的大小。即使用户调用setSize方法设置组件大小,最终可能被覆盖。参照下面的布局管理器了解被覆盖的过程。

绘制图形小程序

/*
* 新建一个窗体Frame
* 新建两个按钮,添加进窗体,使用默认的边界布局
* 为按钮添加监听机制,通过按钮设置shape变量,并调用画布的repaint方法
* 新建一个画布类继承Canvas,重写paint方法,根据不同的shape值,使用方法在画布绘制图形
* 将画布添加进窗体默认中间布局
*/
public class SimpleDraw
{
private final String RECT_SHAPE = "rect";
private final String OVAL_SHAPE = "oval";
private Frame f = new Frame("简单绘图");
private Button rect = new Button("绘制矩形");
private Button oval = new Button("绘制圆形");
private MyCanvas drawArea = new MyCanvas();
// 用于保存需要绘制什么图形的变量
private String shape = "";
public void init()
{
Panel p = new Panel();
rect.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
// 设置shape变量为RECT_SHAPE
shape = RECT_SHAPE;
// 重画MyCanvas对象,即调用它的update方法
drawArea.repaint();
}
});
oval.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
// 设置shape变量为OVAL_SHAPE
shape = OVAL_SHAPE;
// 重画MyCanvas对象,即调用它的update方法
drawArea.repaint();
}
});
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent arg0) {
System.exit(1);
}
});
p.add(rect);
p.add(oval);
drawArea.setPreferredSize(new Dimension(250 , 180));//设置大小
f.add(drawArea);
f.add(p , BorderLayout.NORTH);
f.pack();
f.setVisible(true);
}
public static void main(String[] args)
{
new SimpleDraw().init();
}
class MyCanvas extends Canvas
{
// 重写Canvas的paint方法,实现绘画
public void paint(Graphics g)
{
Random rand = new Random();
if (shape.equals(RECT_SHAPE))
{
// 设置画笔颜色
g.setColor(new Color(220, 100, 80));
// 随机地绘制一个矩形框
g.drawRect( rand.nextInt(200) //---随机数介于0~200之间,不包括200
, rand.nextInt(120) , 40 , 60);
}
if (shape.equals(OVAL_SHAPE))
{
// 设置画笔颜色
g.setColor(new Color(80, 100, 200));
// 随机地填充一个实心圆形
g.fillOval( rand.nextInt(200)
, rand.nextInt(120) , 40 , 40);
}
}
}
}


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