AWT工具简单介绍

    技术2022-07-10  128

    GUI图形界面编程

    GUI的核心技术:Swing AWT;

    GUI的限制:1、界面不美观 2、运行需要jre环境,资源太大

    AWT抽象窗口工具


    AWT是一个创建界面的工具包,包含很多的接口和类元素:包含窗口、按钮、文本框等

    1.Frame


    Frame 是窗口工具,设置应用总窗口;

    // 创建窗口; Frame fra = new Frame(); // 设置布局,java.awt中提供布局管理器,FlowLayout(流式布局管理器)、BorderLayout(边界布局管理器)、GridLayout(网格布局管理器)、CardLayout(卡片布局管理器) fra.setLayout(null); // 设置窗口位置和大小; fra.setBounds(x,y,w,h); //x,y 代表电脑桌面位置坐标,w,h 设置窗口大小; fra.serSize(w,h);// 设置窗口大小; fra,setLocation(x,y); // 设置窗口打开位置; fra.setBackground(Color x); // 设置窗口背景颜色; fra.setVisible(true/false); // 设置窗口可见性; //监听窗口关闭事件 system.exit(0) frame.addWindowListener(new WindowAdapter(){ //点击窗口关闭时做的事情 public void windowClosing(WindowEvent e){ System.exit(0); } })

    2.panel


    panel 可以看做是一个空间,但是不能单独存在;panel用来嵌套窗口,在frame窗口中做相关内容窗口; Panel panel = new Panel(); // 设置坐标 panel.setBounds(x,y,w,h); panel.setBackground(new Color(r,g,b)); //向窗口中内嵌窗口 frame.add(panel);

    3.常见布局方式


    流式布局设置:frame.setLayout(new FlowLayout());//可以在内部设置左右居中等东西南北中设置: frame.add(new Button(" ") , BorderLayout.WEST);表格布局设置: frame.setLayout(new GridLayout(2,3));

    布局方式嵌套通过panel面板工具作为容器,在上面增加新的布局,然后嵌套到frame中

    4.事件监听


    通过对文本、按钮等设置事件监听来获取相关信息,在java中,监听事件ActionListener属于接口,我们可以自己编辑监听类来实现该接口,并编制自己的功能;

    //创建监听类实现接口 class MyActionListener implements ActionListener{ // 实现抽象方法 @Override public void actionPerformed(ActionEvent e) { } } // 创建监听事件,对按钮添加监听 MyActionListener ac = new MyActionListener(); Button button = new Button(); button.addActionListener(ac);

    5.画笔paint


    画笔调用通过实现Frame类里面的paint方法来实现设置画笔时需要设置画笔的颜色画笔使用完成后需要回复默认 @Override public void paint(Graphics g){ //设置画笔颜色 g.setColor(Color.red); //使用画笔画圆 g.drawOval(200,200,200,200);//定位x,y 长宽l , h }

    6.鼠标监听


    鼠标监听事件: MouseListener(接口) ,开发中可以使用适配器模式(MouseAdapter),减少方法重写量

    /* * 将鼠标当做画笔,监听产生的点,并将其画在画板上 * 1.创建画板 * 2.创建点的集合,来保存鼠标产生的所有点 * 3.重写画笔方法,设置画笔颜色,以及画点,位置根据集合中存储的点的坐标来确认 * 4.创建鼠标监听事件,监听鼠标每次点击产生的点,并将其放在集合中 * 5.每次点击鼠标调用窗口的重画功能 */ class MyFrame extends Frame{ //声明点集合 ArrayList point ; //创建画板 public MyFrame(String title){ super(title); point = new ArrayList(); setBounds(200, 200, 800, 800); setVisible(true); this.addMouseListener(new MyMouseListener()); } // 调用画笔 @Override public void paint(Graphics g) { g.setColor(Color.red); //画集合中的点 Iterator ite = point.listIterator(); while(ite.hasNext()){ Point pointer = (Point) ite.next(); g.fillOval(pointer.x, pointer.y, 10, 10); } } // 创建鼠标监听事件 class MyMouseListener extends MouseAdapter{ //鼠标按下时调用 @Override public void mousePressed(MouseEvent e) { point.add(e.getPoint()); repaint(); } } }
    Processed: 0.009, SQL: 9