合肥工业大学——java(最新版)——第三次作业

作业3

  1. 如何开发Java程序图形界面?它需要引入哪些包?

  2. 什么是布局管理器,它有什么作用?

  3. Frame类和Panel类的默认布局器分别是什么?

  4. 请说明FlowLayout布局方式的特点?

  5. 在Java中,什么是事件?简述处理事件的机制。

  6. 绘制下图表格的图案。(提示:确定坐标,画直线、画圆等)
    在这里插入图片描述

  7. 编写Java程序,创建一个窗体,并实现交互。在窗体内“单击鼠标左键”,在光标处绘制一个“绿圆”;窗体内“单击鼠标右键”,在光标处绘制一个“红色方框”;窗体内“双击鼠标左键”,清空所有已画“圆”和“方”。

答:1. 制作图形界面首先要创建一个窗口容器并在窗口中添加各种组件,接着在指定组件属性和在窗口中的位置,构成图形界面的外观效果,然后定义图像界面的事件和各种组件对不同事件的响应,从而实现图形界面和用户的交互。需要引用的包有:AWT、Swing
2. 布局管理器是一个实现Layout Manager接口的类的实例;布局管理器的作用包括设置计算容器的最佳和最小尺寸以及将容器中的组件大小和位置作合适的安排。
3. Frame默认的是BorderLayout布局管理器;Panel默认的是FlowLayout布局管理器
4. FlowLayout的布局策略是将容器中的组件按照加入的先后顺序从左向右排列。如果一行排满转下一行继续,每行均采取居中排列。是Panel型容器的默认布局,即Panel及其子类创建的容器对象,如果不专门为其指定布局,则它们的布局就是FlowLayout型布局。
5. 事件指一个描述事件源状态改变的对象 。通过鼠标、键盘与 GUI 界面直接或间接交互都会生成事件。事件处理机制:Java 对事件处理采用委托事件模型的形式。组件可以发起(触发)一个事件。每种事件的类型由单独的类表示。当事件被触发时,它将被一个或多个“监听器”接收,监听器负责处理事件。
6.

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

public class oop extends JFrame {
    MyPanel mp = null;

    public static void main(String[] args) {
        oop qwe = new oop();
    }

    public oop() {
        mp = new MyPanel();

        this.add(mp);
        this.setSize(315, 330);
        this.setVisible(true);
    }
}

class MyPanel extends JPanel    //我自己的面板,用于绘图和实现绘图区域
{
    //覆盖JPanel的paint方法
    //Graphics是绘图的重要类,可以理解成一支画笔
    public void paint(Graphics g) {
        //画圆
        g.drawOval(30, 30, 40, 40);
        g.drawOval(130, 130, 40, 40);
        g.fillOval(130, 130, 40, 40);
        //画直线
        g.drawLine(0, 200, 300, 200);
        g.drawLine(0, 100, 300, 100);
        g.drawLine(100, 0, 100, 300);
        g.drawLine(200, 0, 200, 300);
        g.drawLine(230, 230, 270, 270);
    }
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class WindowMouse extends JFrame{
    WindowMouse(){
        setTitle("鼠标绘图");//设置窗口标题
        setBounds(100,100,450,450);//设置窗口显示位置和大小
        setVisible(true);//显示窗体
        addMouseListener(new MouseAdapter(){//重写监听器
            public void mouseClicked(MouseEvent e){
                if(e.getClickCount()==1){//单击时
                    if(e.getButton()==e.BUTTON1){//单击左键时
                        Graphics g=getGraphics();
                        g.setColor(Color.green);//设置当前颜色为绿色
                        g.fillOval(e.getX(),e.getY(),60,60);//用当前颜色填充由指定矩形界定的椭圆
                    }
                    else if(e.getButton()==e.BUTTON3){//单击右键时
                        Graphics g=getGraphics();
                        g.setColor(Color.red);//设置当前颜色为红色
                        g.fillRect(e.getX(),e.getY(),60,60);//用当前颜色填写指定的矩形
                    }
                }
                else if(e.getClickCount()==2){//双击时
                    if(e.getButton()==e.BUTTON1){//双击左键时
                        repaint();//清屏
                    }
                }
            }
        });
    }
}
public class AWT{
    public static void main(String args[]){
        new WindowMouse();
    }
}

`

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

再沉淀一年!

本人高校大学生,谢谢你的激励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值