GUI的基本使用方式之代码实例(二)

来源:互联网 发布:电子书编辑软件下载 编辑:程序博客网 时间:2024/05/21 10:35

作者:叁念


1.绘制一个会移动的圆

import java.awt.Color;import java.awt.Graphics;import javax.swing.JFrame;import javax.swing.JPanel;public class Demo05 {    // 1.设置坐标变量x,y    int x = 70;    int y = 70;    public static void main(String[] args) {        Demo05 gui = new Demo05();        gui.go();    }    public void go() {        JFrame jFrame = new JFrame();        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        MyDrawPanel myDrawPanel = new MyDrawPanel();        jFrame.getContentPane().add(myDrawPanel);        jFrame.setSize(300, 300);        jFrame.setVisible(true);        // 2.持续绘制        for (int i = 0; i < 130; i++) {            x++;            y++;            myDrawPanel.repaint();            // 3.设置绘制间隔            try {                Thread.sleep(100);            } catch (InterruptedException e) {                e.printStackTrace();            }        }    }    class MyDrawPanel extends JPanel {        @Override        protected void paintComponent(Graphics g) {            // 4.每次绘制圆的时候将面板用black色的Rect覆盖            g.setColor(Color.black);            g.fillRect(0, 0, this.getWidth(), this.getHeight());            // 5.绘制Oval形状            g.setColor(Color.green);            g.fillOval(x, y, 40, 40);        }    }}

演示结果:
这里写图片描述


2.绘制一个依次减小的矩形/h3>

import java.awt.Color;import java.awt.Graphics;import javax.swing.JFrame;import javax.swing.JPanel;public class Demo06 {    // 1.坐标    int x = 1;    int y = 1;    public static void main(String[] args) {        Demo06 gui = new Demo06();        gui.go();    }    public void go() {        JFrame jFrame = new JFrame();        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        MyDrawP myDrawP = new MyDrawP();        jFrame.getContentPane().add(myDrawP);        jFrame.setSize(500, 270);        jFrame.setVisible(true);        // 2.改变形状以及位置        for (int i = 0; i < 124; i++, x++, y++) {            x++;            myDrawP.repaint();            try {                // 2.缓慢效果                Thread.sleep(50);            } catch (InterruptedException e) {                e.printStackTrace();            }        }    }    class MyDrawP extends JPanel {        @Override        public void paint(Graphics g) {            g.setColor(Color.white);            g.fillRect(0, 0, 500, 250);            g.setColor(Color.blue);            g.fillRect(x, y, 500 - x * 2, 250 - y * 2);        }    }}

演示结果:
这里写图片描述


3.绘制各种基本图形

import java.awt.BorderLayout;import java.awt.Color;import java.awt.Graphics;import java.awt.Image;import java.awt.Toolkit;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JPanel;public class Demo07 {    public static void main(String[] args) {        JFrame jFrame = new JFrame();        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        jFrame.setSize(300, 300);        jFrame.setVisible(true);        jFrame.getContentPane().add(BorderLayout.CENTER, new JPanel() {            @Override            protected void paintComponent(Graphics g) {                //// 1.绘制一个覆盖指定矩形的圆弧或椭圆弧边框. [x 坐标,y 坐标, 弧的宽度,弧的高度,开始角度,弧跨越的角度]//               g.drawArc(0,0, 100, 50, 0, 360);//               g.fillArc(0,0, 100, 50, 0, 360);                //// 2.绘制一条 直线 [x1 坐标,y1 坐标,x2 坐标,y2 坐标]//               g.drawLine(0, 100, 200, 100);                //// 3.绘制一个 椭圆 [x 左上角的 坐标,左上角坐标,width 宽度,height 高度]//               g.drawOval(0, 0, 100, 200);//               g.fillOval(0, 0, 100, 200);                //// 4.绘制一个 矩形 [x 坐标, y 坐标,width 宽度,height 高度]//               g.drawRect(0, 0, 100, 200);//               g.fillRect(0, 0, 100, 200);                //// 5.绘制一个 圆角矩形 [x 坐标,y 坐标,width 宽度,height高度,arcWidth - 4 个角弧度的水平直径,arcHeight -                //// 4 个角弧度的垂直直径]//               g.drawRoundRect(0, 0, 200, 100, 50, 50);//               g.fillRoundRect(0, 0, 200, 100, 50, 50);                //// 6.绘制一段 文本 [str 要绘制的 文本,x 坐标,y 坐标]//               g.drawString("这是一段文本", 50, 50);                //// 7.绘制一张 图片//               Image image = Toolkit.getDefaultToolkit().getImage("temp.jpg");//               g.drawImage(image, 0, 0, 200, 200, this);                // 8.绘制一个由 x 和 y 坐标数组定义的闭合多边形。每对 (x, y) 坐标定义一个点。                /**                 * 菱形                 *///               int[] xPoint = new int[] { 50, 100, 50, 0 };//               int[] yPoint = new int[] { 100, 50, 0, 50 };//               g.drawPolygon(xPoint, yPoint, 4);                /**                 * 三角形                 *///               int[] xPoint = new int[] { 50, 100, 0};//               int[] yPoint = new int[] { 100, 0, 0 };//               g.drawPolygon(xPoint, yPoint, 3);                /**                 * 不规则五角星                 *///              int[] xPoint = new int[] { 100, 120, 200, 140, 160, 100, 40, 60, 0, 80 };//              int[] yPoint = new int[] { 0, 80, 100, 150, 220, 180, 220, 150, 100, 80 };//              g.drawPolygon(xPoint, yPoint, 10);            }        });    }}

演示结果:
这里写图片描述

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 分馏和蒸馏的区别 煤干馏 干馏 煤的干馏 精馏原理 精馏 黑豆馏油软膏 馏怎么读 波兰精馏伏特加 酩馏青稞酒价格表 精馏实验报告 血管馏 酩馏酒750装价格 干馏是物理变化还是化学变化 四马分肥 半马一小时40分什么水平 四马分肥名词解释 库兹马41分 四马分肥是指 马姓女孩起名100分 四马分肥包括哪四个方面 一个马 女生齐耳三七分短发 女生齐耳短发 齐姓女孩名字100分 齐刘海留中分 齐刘海怎么变中分 齐刘海怎么分三角区图解 鬼切 切接 空切 安吉利卡科切娃 疯狂切菜 切玉红龙咆哮 白切鸡 桑切斯梅开二度 白切鸡做法 真实割奶切阴 切辣椒手辣怎么办