import javax.swing.*;
import java.awt.*;
import java.util.Random; public class SimpleDraw {
private final String RECT_SHAPE = "rect";
private final String OVAL_SHAPE = "oval";
private Frame f = new Frame("Test"); private JButton rect = new JButton("绘制矩行");
private JButton oval = new JButton("绘制圆形"); private MyCanvas drawArea = new MyCanvas();
private String shape = "";
public void init(){ var p = new Panel();
rect.addActionListener(e -> {
shape = RECT_SHAPE;
drawArea.repaint();
}); oval.addActionListener(e -> {
shape = OVAL_SHAPE;
drawArea.repaint();
}); p.add(rect);
p.add(oval);
drawArea.setPreferredSize(new Dimension(250,180)); f.add(drawArea);
f.add(p, BorderLayout.SOUTH); f.pack();
f.setVisible(true); }
public static void main(String[] args) {
new SimpleDraw().init();
} class MyCanvas extends Canvas{
public void paint(Graphics g){
var rand = new Random();
if(shape.equals(RECT_SHAPE)){
g.setColor(new Color(200,100,80));
g.drawRect(rand.nextInt(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,50);
}
} }
}

output:

learning java AWT 画图的更多相关文章

  1. Java -- AWT 画图,图像处理

    1. AWT画图  Graphics类  提供绘制简单图形的方法 更新图片时用到 repaint , update , 程序不应该主动调用paint和update, 这两个方法都应该是由AWT系统负责 ...

  2. learning java AWT 剪贴板 传递文本

    import javax.swing.*; import java.awt.*; import java.awt.datatransfer.Clipboard; import java.awt.dat ...

  3. learning java AWT 手绘窗口

    import java.awt.*;port java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import jav ...

  4. learning java AWT 右键菜单

    import java.awt.*; import java.awt.event.*; public class SimpleMenu { private Frame f = new Frame(&q ...

  5. learning java AWT MenuBar Menu MenuItem菜单

    import java.awt.*; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java ...

  6. learning java AWT widowEvent and MouseEvent

    import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import jav ...

  7. learning java AWT EventQs

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

  8. learning java AWT Dialog

    import java.awt.*; public class DialogTest { Frame f = new Frame("test"); Dialog d1 = new ...

  9. learning java AWT 常见组件

    import javax.swing.*; import java.awt.*; public class CommonComponent { Frame f = new Frame("te ...

随机推荐

  1. Scala 条件控制与循环

    Scala if表达式 ·if表达式的定义:在Scala中,if表达式是有值的,就是if或者else中最后一行语句返回的值. ·例如,val age = 30; if (age > 18) 1 ...

  2. 判断密码是否可见/判断登录的状态/判断在form表单中 定义rules规则验证(iview)

    一: 判断密码是否可见判断:type="visiblePassword ? 'text' : 'password'" 是否为false 或者 true 密码为输入框或者文本框点击眼 ...

  3. [LOJ6432] [PKUSC2018] 真实排名

    题目链接 LOJ:https://loj.ac/problem/6432 Solution 假设我们当前要算\(x\)的答案,分两种情况讨论: \(x\)没被翻倍,那么\([a_x/2,a_x]\)这 ...

  4. 启动mysql服务器

    介绍了启动服务器的两种方式,以及可能遇到的问题 第一种:系统服务 1)可以通过右击方式一步步找到服务 右击计算机->选择管理->找到服务,然后双击打开,找到mysql,我安装的是mysql ...

  5. CCF 2016-12-1 中间数

    CCF 2016-12-1 中间数 题目 问题描述 在一个整数序列a1, a2, -, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数.在一个序列中,可能存在多个下标不相 ...

  6. java 堆 排序学习

    /** * <html> * <body> * <P> Copyright 1994 JsonInternational</p> * <p> ...

  7. Java字节流文件复制

    1.字节流 在 Java 中,文件的复制使用字节输入流和字节输出流实现,java.io 包有 InputStream 和 OutputStream 这两个顶层抽象类规范了读写文件所需的核心 API. ...

  8. 有关mysql的utf8和utf8mb4,以及Illegal mix of collations for operation 'like'

    参考以下几个帖子: https://www.cnblogs.com/install/p/4417527.html https://blog.csdn.net/Yetmoon/article/detai ...

  9. springboot+security整合(2)自定义校验

    说明 springboot 版本 2.0.3源码地址:点击跳转 系列 springboot+security 整合(1) springboot+security 整合(2) springboot+se ...

  10. 如何获取jar包中resource下的文件

    maven工程打jar包,部署到服务器上以后,获取resource下文件的绝对路径是找不到该文件的 只能用流的方式获取,代码如下: import lombok.extern.slf4j.Slf4j; ...