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

JAVA-作业7-画一个笑脸

要求如题

代码如下:

SmileFace01:

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JPanel;

public class SmileFace01 extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        int width = getWidth() / 2;
        int height = getHeight() / 2;

        // 绘制脸部
        g.setColor(Color.YELLOW);
        g.fillOval(100, 50, width, height);

        // 绘制眼睛
        g.setColor(Color.BLACK);
        int eyeSize = width / 8;
        int eyeY = height / 4 + 50;
        g.fillOval(width / 4 - eyeSize / 2 + 100, eyeY, eyeSize, eyeSize);
        g.fillOval(width * 3 / 4 - eyeSize / 2 + 100, eyeY, eyeSize, eyeSize);

        // 绘制嘴巴
        g.drawArc(135, 105, 120, 100, 0, -180);

    }
}

SmileJFrame01:

import javax.swing.JFrame;
import javax.swing.JLabel;

import java.awt.Font;

public class SmileJFrame01 extends JFrame {
    public SmileJFrame01() {
        JFrame jFrame = new JFrame("Smile");
        jFrame.setSize(400, 400);
        jFrame.setLocation(400, 300);
        jFrame.setDefaultCloseOperation(3);

        // 添加文字
        JLabel jLabel = new JLabel("Smiling...");
        jLabel.setBounds(145, 260, 150, 20);
        jLabel.setFont(new Font("宋体", Font.BOLD, 20));
        jFrame.add(jLabel);
        SmileFace01 panel = new SmileFace01();
        jFrame.add(panel);

        jFrame.setVisible(true);
    }
}

SmileFace02:

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JPanel;

public class SmileFace02 extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        int width = getWidth() / 2;
        int height = getHeight() / 2;

        // 绘制脸部
        g.setColor(Color.YELLOW);
        g.fillOval(100, 50, width, height);

        // 绘制眼睛
        g.setColor(Color.BLACK);
        int eyeSize = width / 8;
        int eyeY = height / 4 + 50;
        g.fillOval(width / 4 - eyeSize / 2 + 100, eyeY, eyeSize, eyeSize);
        g.fillOval(width * 3 / 4 - eyeSize / 2 + 100, eyeY, eyeSize, eyeSize);

        // 绘制嘴巴
        g.fillOval(135, 108, 120, 100);
        g.setColor(Color.yellow);
        g.fillOval(135, 107, 120, 90);

    }
}

SmileJFrame02:

import javax.swing.JFrame;
import javax.swing.JLabel;

import java.awt.Font;

public class SmileJFrame02 extends JFrame {
    public SmileJFrame02() {
        JFrame jFrame = new JFrame("Smile");
        jFrame.setSize(400, 400);
        jFrame.setLocation(800, 300);
        jFrame.setDefaultCloseOperation(3);

        // 添加文字
        JLabel jLabel = new JLabel("Smiling...");
        jLabel.setBounds(145, 260, 150, 20);
        jLabel.setFont(new Font("宋体", Font.BOLD, 20));
        jFrame.add(jLabel);
        SmileFace02 panel = new SmileFace02();
        jFrame.add(panel);

        jFrame.setVisible(true);
    }
}

Test:

public class Test {

    public static void main(String[] args) {
        SmileJFrame01 frame01 = new SmileJFrame01();
        SmileJFrame02 frame02 = new SmileJFrame02();
    }
}

运行结果:


http://www.kler.cn/news/157599.html

相关文章:

  • 【算法】算法题-20231205
  • 【C++】树型结构关联式容器:map/multimap/set/multisetの使用指南(27)
  • canvas绘制小丑
  • Mysql、Oracle区分大小写?
  • 【新手解答8】深入探索 C 语言:递归与循环的应用
  • spring cloud nacos整合gateway
  • 十五、机器学习进阶知识:K-Means聚类算法
  • 【SQL SERVER】定时任务
  • 【ARM Trace32(劳特巴赫) 使用介绍 12 -- Trace32 常用命令之 d.dump | data.dump 介绍】
  • Linux: 文档 :相关接口文档手册还是需要仔细阅读
  • mfc 设置excel 单元格的列宽
  • EM32DX-C4【C#】
  • 解决:ERROR: No matching distribution found for rarfile
  • 传输层可靠传输的原理
  • 【网络安全技术】密钥管理
  • llama.cpp部署(windows)
  • LinuxBasicsForHackers笔记 --添加和删​​除软件
  • Notepad++ 安装TextFx插件失败
  • 双目光波导AR眼镜_AR智能眼镜主板PCB定制开发
  • 探讨Unity中的动画融合技术(BlendTree)
  • <Linux>(极简关键、省时省力)《Linux操作系统原理分析之linux存储管理(5)》(21)
  • C#的方法使用
  • C++数据结构:B树
  • C10练习题
  • 分享几个电视颜色测试图形卡
  • JVM类加载全过程
  • 2023-2024-1-高级语言程序设计-第2次月考函数题
  • 【C语言】预处理详解
  • js获取当前时间,当日零点,前一周时间
  • Web测试自动化工具Selenium的使用