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();
    }
}

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值