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. Oracle 11g 总结篇2

    第一部分: 字段名的别名用""括起来,如:last_name as "姓名". 去除重复:在投影的字段名前加上 distinct 就可以了. 比如:select ...

  2. PDF时间戳 服务器

    好用权威免费的PDF文件数字签名时间戳服务器URL http://tss.pki.gva.es:8318/tsa

  3. 利用PHPExcel快速导出excel

    <?php $objPHPExcel = new PHPExcel(); $objSheet = $objPHPExcel->getActiveSheet(); $array = arra ...

  4. 3.建造模式(Builder)

    注:图片来源于 https://www.cnblogs.com/-saligia-/p/10216752.html 建造模式UML图解析: 代码: Director.h // // Created b ...

  5. 重置文件reset

    body { margin:0; padding:0; font-family: Helvetica, STHeiti, Droid Sans Fallback; // font-family: '微 ...

  6. Qt 接受拖放

    第一步:在构造函数里面 添加拖放支持,相当于总开关(注意这里设置之后是整个窗口可以接受拖放) setAcceptDrops(true); 第二步:重写接受拖放相关的虚函数 void dragEnter ...

  7. WPF登录功能,对于密码框的操作,其实WPF有个PasswordBox专门的密码框控件,完全可以选择自己要显示的密码符号。

    在链接数据库后,点击登录时需要判断用户名和密码框是否为空,而PasswordBox不像textbox那样判断 textbox判断文本框为空 if (this.UserName.Text.Trim()= ...

  8. ECharts 实现地图散点图上(转载)

    转载来源:https://efe.baidu.com/blog/echarts-map-tutorial/ ECharts 实现地图散点图(上)  小红  2016-04-28  ECharts, 教 ...

  9. python字符串的常见方法

    1.join方法:拼接字符串------->str a = "你是风儿我是沙"b = "@".join(a)print(b)>>>你@是 ...

  10. 18,flask项目中使用celery

    导包: from celery import Celery from celery.result import AsyncResult app.config['CELERY_BROKER_URL'] ...