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. java之struts2的action的创建方式

    首先action是用来处理请求的, 这里struts2中的action的3中创建方式. 1.无侵入性的创建方式. 无侵入性:使用第三方的框架,不直接继承或实现第三方提供的类或者接口就说是无侵入性的. ...

  2. DBCP数据库连接池初探

    1. 概述 数据库连接是很“宝贵的”,如果每次获取Connection都去创建数据库连接,使用之后就断开,再次使用又重新创建,程序效率是很低的.因为Socket连接的建立很消耗资源. 所以需要数据库连 ...

  3. iOS - app 进行安全加固

    研究了大半年逆向工程了,没在博客做记录,最近看到篇,跟自己的想法不谋而合,摘要下: 运行在越狱设备上的 iOS app,非常容易遭到破解分析,这里我列举一些可以加大破解难度的方法,希望有所帮助. 一些 ...

  4. 【转载】C#中string类使用Substring方法截取字符串

    在C#的字符串操作过程中,截取字符串是一种常见的字符串操作,可使用string类的Substring方法来完成字符串的截取操作,该方法支持设定截取的开始位置以及截取的字符串长度等参数,Substrin ...

  5. JavaScript,数组,方法;

    JavaScript,数组除了常见的增删查改,其他的方法也有很多. let arr = [1, 3, 7, 6, 9, 4, 6, 2]; 1:every方法, 对数组进行遍历,每个元素都满足条件时, ...

  6. vs2017开启JavaScript智能提示

    [工具]--[选项]--[文本编辑器]--[JavaScript]--[语言服务] 把第一个钩去掉即可,如果不需要提示就打上勾

  7. 使nginx支持pathinfo模式

    在将fastadmin部署到虚拟机中时,遇到如下问题:当访问登录页面时,页面进行不断的循环跳转重定向.解决方法是将nginx配置为支持pathinfo的模式 以下是nginx中的配置内容: locat ...

  8. https和证书小结

    https://www.cnblogs.com/andy9468/p/10484598.html https://www.cnblogs.com/andy9468/p/10414371.html ht ...

  9. Mac 修改hostname

    mac终端上输入命令: sudo scutil --set HostName newname # 实例 sudo scutil --set HostName master

  10. out string

    示例 当希望方法返回多个值时,声明 out 方法很有用.使用 out 参数的方法仍然可以将变量用作返回类型(请参见 return),但它还可以将一个或多个对象作为 out 参数返回给调用方法.此示例使 ...