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); } }); }}
演示结果:
阅读全文