给大家附上源码。"/>
今天练习了一下Java GUI 编程,画了一个王八,给大家附上源码。
今天练习了一下Java GUI 编程,画了一个王八,给大家附上源码。
```java
package com.Jui_.test_;import javax.swing.*;
import java.awt.*;/*** @Package: com.Jui_.test_* @ClassName: Test01* @Author: Mr.Zhang* @CreateTime: 2022/1/12 22:19* @Description:*/
public class Test01 extends JFrame {private MyPanel mp;public Test01() {mp = new MyPanel();this.add(mp);this.setTitle("龟虽寿");this.setSize(1920, 1080);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}public static void main(String[] args) {Test01 test01 = new Test01();}
}class MyPanel extends JPanel {@Overridepublic void paint(Graphics g) {super.paint(g);g.setColor(Color.WHITE);g.fillRect(0, 0, 1920, 1080);paintTortoiseBody(1920 / 2, 1080 / 2, g);}public void paintTortoiseTail(int x, int y, Graphics g) {//画尾巴g.setColor(Color.BLUE);g.drawOval(x + 100, y + 257, 126, 124);g.drawOval(x + 117, y + 327, 48, 48);
// g.setColor(Color.BLACK);
// g.drawLine(x+100,y+320,x+222,y+338);g.setColor(Color.WHITE);//裁剪上部分圆弧算法for (int i = x + 217, j = y + 286, k = x + 217, l = y + 320; i <= x + 226; i++, k++) {g.drawLine(i, j, k, l);}//裁剪下部分圆弧算法for (int i = x + 222, j = y + 338, k = x + 222, l = y + 320; i <= x + 226; i++, k++) {g.drawLine(i, j, k, l);}}public void paintTortoiseBody(int x, int y, Graphics g) {//使整体居中int firstX = x - 100, firstY = y - 200;paintTortoiseTail(firstX, firstY, g);g.setColor(Color.GREEN);//画头g.fillOval(firstX + 70, firstY - 80, 55, 70);//画脖子g.fillRect(firstX + 79, firstY - 18, 38, 55);//画眼睛g.setColor(Color.black);g.fillOval(firstX + 75, firstY - 55, 10, 10);g.fillOval(firstX + 110, firstY - 55, 10, 10);//画四只脚paintTortoiseFeet(firstX, firstY, g);//画龟壳g.setColor(Color.RED);g.fillOval(firstX - 30, firstY, 260, 320);//龟甲写字g.setColor(Color.BLACK);g.setFont(new Font("隶书", Font.BOLD, 50));g.drawString("龟", firstX + 75, firstY + 130);g.drawString("虽", firstX + 75, firstY + 180);g.drawString("寿", firstX + 75, firstY + 230);}public void paintTortoiseFeet(int x, int y, Graphics g) {//画四只脚//左上g.setColor(Color.GREEN);g.fillOval(x - 51, y + 32, 85, 40);g.setColor(Color.WHITE);//直线裁剪椭圆算法for (int i = x - 51, j = y + 52, k = x + 9, l = y + 72; j <= l && k >= i; j++, k--) {g.drawLine(i, j, k, l);}//右上g.setColor(Color.GREEN);g.fillOval(x + 166, y + 32, 85, 40);g.setColor(Color.WHITE);//直线裁剪椭圆算法for (int i = x + 208, j = y + 72, k = x + 250, l = y + 52; i <= k && l <= j; i++, l++) {g.drawLine(i, j, k, l);}//左下g.setColor(Color.GREEN);g.fillOval(x - 51, y + 248, 85, 40);//直线裁剪椭圆算法g.setColor(Color.WHITE);for (int i = x - 51, j = y + 268, k = x + 9, l = y + 248; j >= l && k >= i; j--, k--) {g.drawLine(i, j, k, l);}//右下g.setColor(Color.GREEN);g.fillOval(x + 166, y + 248, 85, 40);//直线剪裁椭圆算法g.setColor(Color.WHITE);for (int i = x + 208, j = y + 248, k = x + 250, l = y + 268; i <= k && l >= j; i++, l--) {g.drawLine(i, j, k, l);}}
}
运行结果如图:
更多推荐
今天练习了一下Java GUI 编程,画了一个王八,给大家附上源码。
发布评论