合肥工业大学-Java-第三次作业

姓名:                 学号:                    专业班级:                     

作业3

  1. 如何开发Java程序图形界面?它需要引入哪些包?
  2. 什么是布局管理器,它有什么作用?
  3. Frame类和Panel类的默认布局器分别是什么?
  4. 请说明FlowLayout布局方式的特点?
  5. 在Java中,什么是事件?简述处理事件的机制。
  6. 绘制骰子四点的图案。(正方形内四个圆形)
  7. 编写Java程序,创建一个窗体,并实现交互。在窗体内“单击鼠标左键”,在光标处绘制一个“绿圆”;窗体内“单击鼠标右键”,在光标处绘制一个“红色方框”;窗体内“双击鼠标左键”,清空所有已画“圆”和“方”。
  • 提交作业说明
    327之前提交作业,命名方式为 学号+姓名+作业3

=====================================================================

答:1、制作图形化界面是要创建一个窗口,并在窗口中添加各种组件,然后指定组件的属性和在窗口的位置与颜色,接着在指定的图形化界面定义对不同的事情的反应,实现图形化界面和用户的交互。需要引包:AWTSwing

2、布局管理器是实现Layout Manager接口类的实例,布局管理器的作用是设计窗口的最佳大小和最佳颜色,以及窗口中的组件大小与位置。

4FlowLayout:可以创建一个中对齐的布局对象。使用FlowIayout布局的容器使用add方法将组件顺序地添加到容器中,组件按照加入的先后顺序从左向右排列,在该方法中设置大小无效,需要调用其他的类。

5、事件,是封装了事件源对象及跟事件相关的信息。事件处理机制:先生成监听器,在发生事件的对应组件上注册监听器,当注册监听器的组件上发生事件时,将事件对象返回给监听器,最后监听器调用相应的方法处理事件。

第6题代码:

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

class ShowLayout extends JFrame{
    PanelDiceLayout PanelDice;
    ShowLayout(){
        PanelDice=new PanelDiceLayout();//创建面板实例
        add(PanelDice);//将面板实例添加到窗口容器中
        setBounds(100,100,400,400);//设置窗口显示位置和大小
        setTitle("三点的骰子");//设置窗口标题
        setVisible(true);//显示窗体
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//结束窗口所在的应用程序
    }

}

class PanelDiceLayout extends JPanel{//创建内部面板
    public void paint(Graphics g){//重写paint()方法
        Graphics2D g2 = (Graphics2D)g;//将抽象父类的Graphics强制转换为子类Graphics2D
        //g2.setStroke(new BasicStroke());可设置线条粗细
        g2.setColor(Color.black);//设置当前颜色为黑色
        g2.drawRoundRect(150,100,100,100,20,20);//绘制一个概略的圆角矩形
        g2.setColor(Color.red);//设置当前颜色为红色
        g2.fillOval(170,120,20,20);//用当前颜色填充指定矩形界定的椭圆
        g2.fillOval(210,120,20,20);//
        g2.fillOval(210,160,20,20);//
        g2.fillOval(170,160,20,20);//
    }
}
public class a1{
    public static void main(String args[]){
        new ShowLayout();
    }
}

第七题代码:

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

class WindowMouse extends JFrame{
    WindowMouse(){
        setTitle("鼠标绘图");//设置窗口标题
        setBounds(100,100,450,450);//设置窗口显示位置和大小
        setVisible(true);//显示窗体
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//结束窗口所在的应用程序
        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 a2{
    public static void main(String args[]){
        new WindowMouse();
    }
}

  • 17
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值