当前位置: 首页 > news >正文

安徽省校园网站建设wordpress内网oss

安徽省校园网站建设,wordpress内网oss,免费查企业哪个软件最好,微信公众号制作模板免费AWT编程 语雀 仓库#xff1a;Java图形化界面: Java图形化界面学习demo与资料 (gitee.com) 很多程序如各种小游戏都需要在窗口中绘制各种图形#xff0c;除此之外#xff0c;即使在开发JavaEE项目时#xff0c; 有 时候也必须动态地向客户 端生成各种图形、… AWT编程 · 语雀 仓库Java图形化界面: Java图形化界面学习demo与资料 (gitee.com) 很多程序如各种小游戏都需要在窗口中绘制各种图形除此之外即使在开发JavaEE项目时 有 时候也必须动态地向客户 端生成各种图形、图表比如 图形验证码、统计图等这都需要利用AWT的绘图功能。 组件绘图原理 之前我们已经学习过很多组件例如Button、Frame、Checkbox等等不同的组件展示出来的图形都不一样其实这些组件展示出来的图形其本质就是用AWT的绘图来完成的。 在AWT中真正提供绘图功能的是Graphics对象那么Component组件和Graphics对象存在什么关系才能让Component绘制自身图形呢在Component类中提供了下列三个方法来完成组件图形的绘制与刷新 paint(Graphics g):绘制组件的外观 update(Graphics g):内部调用paint方法刷新组件外观 repaint():调用update方法刷新组件外观 一般情况下update和paint方法是由AWT系统负责调用如果程序要希望系统重新绘制组件可以调用repaint方法完成。 Graphics类的使用 实际生活中如果需要画图首先我们得准备一张纸然后在拿一支画笔配和一些颜色就可以在纸上画出来各种各样的图形例如圆圈、矩形等等。 程序中绘图也一样也需要画布画笔颜料等等。AWT中提供了Canvas类充当画布提供了Graphics类来充当画笔通过调用Graphics对象的setColor()方法可以给画笔设置颜色。 画图的步骤 1.自定义类继承Canvas类重写paint(Graphics g)方法完成画图 2.在paint方法内部真正开始画图之前调用Graphics对象的setColor()、setFont()等方法设置画笔的颜色、字体等属性 3.调用Graphics画笔的drawXxx()方法开始画图。 其实画图的核心就在于使用Graphics画笔在Canvas画布上画出什么颜色、什么样式的图形所以核心在画笔上下表中列出了Graphics类中常用的一些方法 案例 使用AWT绘图API完成下图效果 演示代码 import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random;public class SimpleDraw {private final String RECT_SHAPErect;private final String OVAL_SHAPEoval;private Frame frame new Frame(这里测试绘图);private Button drawRectBtn new Button(绘制矩形);private Button drawOvalBtn new Button(绘制椭圆);//用来保存当前用户需要绘制什么样的图形private String shape;private MyCanvas drawArea new MyCanvas();public void init(){//为按钮添加点击事件drawRectBtn.addActionListener(new ActionListener() {Overridepublic void actionPerformed(ActionEvent e) {shape RECT_SHAPE;drawArea.repaint();}});drawOvalBtn.addActionListener(new ActionListener() {Overridepublic void actionPerformed(ActionEvent e) {shape OVAL_SHAPE;drawArea.repaint();}});//定义一个Panel装载两个按钮Panel p new Panel();p.add(drawRectBtn);p.add(drawOvalBtn);//把panel添加到frame底部frame.add(p,BorderLayout.SOUTH);//设置画布的大小drawArea.setPreferredSize(new Dimension(300,200));//把画布添加到frame中frame.add(drawArea);frame.pack();frame.setVisible(true);}public static void main(String[] args) {new SimpleDraw().init();}//1.自定义类继承Canvas类重写paint方法private class MyCanvas extends Canvas{Overridepublic void paint(Graphics g) {Random r new Random();if (shape.equals(RECT_SHAPE)){//绘制矩形g.setColor(Color.BLACK);g.drawRect(r.nextInt(200),r.nextInt(100),40,60);}if(shape.equals(OVAL_SHAPE)){//绘制椭圆g.setColor(Color.RED);g.drawOval(r.nextInt(200),r.nextInt(100),60,40);}}} } Java也可用于开发一些动画。所谓动画就是间隔一定的时间(通常小于0 . 1秒 )重新绘制新的图像两次绘制的图像之间差异较小肉眼看起来就成了所谓的动画 。 为了实现间隔一定的时间就重新调用组件的 repaint()方法可以借助于 Swing 提供的Timer类Timer类是一个定时器 它有如下一个构造器 Timer(int delay, ActionListener listener): 每间隔 delay 毫秒系统自动触发 ActionListener 监听器里的事件处理器方法在方法内部我们就可以调用组件的repaint方法完成组件重绘。 案例2 使用AWT画图技术及Timer定时器完成下图中弹球小游戏。 演示代码2 package awt_swimg.day03;import awt_swimg.day01.Utils;import javax.swing.*; import java.awt.*; import java.awt.event.*;public class PinBall {//桌面宽度private final int TABLE_WIDTH 300;//桌面高度private final int TABLE_HEIGHT 400;//球拍的高度和宽度private final int RACKET_WIDTH 60;private final int RACKET_HEIGHT 20;//小球的大小private final int BALL_SIZE 16;//定义小球纵向运行速度private int ySpeed 10;//小球横向运行速度private int xSpeed 5;//定义小球的初始坐标private int ballX 120;private int ballY 20;//定义球拍的初始坐标x坐标会发生变化y坐标不会发生变化private int RACKET_X 120;private final int RACKET_Y 340;//声明定时器private Timer timer;private JFrame framenew JFrame(弹球游戏);private MyCanvas canvasnew MyCanvas();//定义游戏结束的标记private boolean isLose false;private KeyListener event new KeyAdapter() {Overridepublic void keyPressed(KeyEvent e) {int keyCode e.getKeyCode();if (keyCode KeyEvent.VK_LEFT) {if (RACKET_X 0) {RACKET_X - 10;}}if (keyCode KeyEvent.VK_RIGHT) {if (RACKET_X TABLE_WIDTH - RACKET_WIDTH) {RACKET_X 10;}}}};private ActionListener timerTasknew ActionListener() {Overridepublic void actionPerformed(ActionEvent e) {if (ballX0||ballXTABLE_WIDTH-BALL_SIZE) {xSpeed-xSpeed;}if (ballY0||ballYRACKET_Y-BALL_SIZEballX RACKET_X ballX RACKET_X RACKET_WIDTH) {ySpeed -ySpeed;}if (ballYRACKET_Y(ballXRACKET_X||ballXRACKET_XRACKET_WIDTH)) {timer.stop();isLosetrue;canvas.repaint();}ballX xSpeed;ballY ySpeed;canvas.repaint();}};private MenuBar menuBarnew MenuBar();private Menu optionnew Menu(选项);private MenuItem reStartnew MenuItem(重新开始);private MenuItem exitnew MenuItem(退出);public void init(){frame.add(canvas);frame.setMenuBar(menuBar);menuBar.add(option);option.add(reStart);option.add(exit);exit.addActionListener(e - System.exit(0));reStart.addActionListener(e - {isLosefalse;ballX 120;ballY 20;RACKET_X 120;canvas.repaint();timer.start();});canvas.setPreferredSize(new Dimension(TABLE_WIDTH,TABLE_HEIGHT));canvas.addKeyListener(event);frame.addKeyListener(event);timernew Timer(50,timerTask);timer.start();Utils.setJFrame(frame);}public static void main(String[] args) {new PinBall().init();}public class MyCanvas extends Canvas{Overridepublic void paint(Graphics g) {if (isLose) {g.setColor(Color.BLUE);g.setFont(new Font(Times,Font.BOLD,30));g.drawString(游戏结束,80,200);}else{g.setColor(Color.red);g.fillOval(ballX, ballY, BALL_SIZE, BALL_SIZE);g.setColor(Color.green);g.fillRect(RACKET_X, RACKET_Y, RACKET_WIDTH, RACKET_HEIGHT);}}} }
http://www.w-s-a.com/news/712617/

相关文章:

  • 建筑公司网站排名5G网站建设要多少个
  • seo怎样新建网站弹簧东莞网站建设
  • 在线做爰直播网站石家庄房产
  • 建筑网站哪里找拓者设计吧首页
  • 广州网站的建设wordpress注册数学验证码
  • 装修平台自己做网站有几个黄页名录网站开发
  • php网站的安全优势平面设计师培训
  • 乐清市网站建设设计重庆沙坪坝区
  • 什么是seo站内优化开发网页的工具有哪些
  • 文化类网站是不是休闲娱乐类网站青州市建设局网站
  • 网站的中英文切换代码做现货黄金网站
  • 万江区网站建设公司前端如何根据ui设计写页面
  • 宿迁公司做网站手机免费创建网站的软件
  • 免费可商用素材网站山东威海网站开发
  • 建设网站什么语言比较合适柳州建设网经济适用房
  • 企业网站的主要功能板块平台推广是做什么的
  • 网页网站自做全搞定西安建设工程信息网诚信平台
  • 网站vip怎么做建网站外包公司
  • 胶州建网站域名不备案可以正常使用吗
  • 网站建设客户开发方案软件工程师行业分析
  • 沈阳网站建设黑酷科技微信小程序怎么一键删除
  • 做网站产品搜索展示实现西安百度推广服务公司
  • 建立网站接受投注是什么意思一般使用的分辨率的显示密度是多少
  • 怎么建立一个网站开展业务网站建设人员的工资分配
  • 求职网站建设方案企业网站开发需求分析
  • 西安企业网站开发可以做哪些有趣的网站
  • 房产类网站开发云南百度建站
  • 泰州网站建设电话彩票网站怎么做代理
  • 泉州网站制作推广山西网站开发建设
  • 百度商桥怎样绑定网站百度推广登陆