JFrame只显示灰色框而不是代码中的图形

问题描述 投票:0回答:0

我正在尝试创建一个刽子手游戏,但卡在实际刽子手的显示屏上。它只是显示一个灰色的屏幕,我很难看到我哪里出错了。

import javax.swing.*;
import java.awt.*;

public class HangmanPicture extends JPanel {

    int numBodyParts = 0;

    public void picturePanel() {
        setPreferredSize(new Dimension(700, 400));
        setBackground(Color.lightGray);
    }

    public void paintPicture(Graphics g) {
        //if (numBodyParts >= 1) {

            // draw face
            g.setColor(Color.YELLOW);
            g.fillOval(35, 120, 70, 60);
            // hat
            g.setColor(Color.RED);

            g.fillRect(48, 90, 48, 30);
            g.fillRect(30, 120, 80, 15);

            // draw eyes
            g.setColor(Color.GREEN);
            g.fillOval(55, 140, 10, 10);
            g.fillOval(75, 140, 10, 10);

            // smile
            g.setColor(Color.RED);
            g.drawArc(50, 155, 40, 10, -10, -180);

           // if (numBodyParts >= 2) {
                // body
                g.setColor(Color.GREEN);
                g.fillRect(60, 180, 20, 80);


            //if (numBodyParts >= 3) {
                // left arm
                g.setColor(Color.GREEN);
                g.fillRect(25, 200, 45, 15);
                g.setColor(Color.YELLOW);
                g.fillRect(15, 200, 10, 15);

            //if (numBodyParts >= 4) {
                // right arm
                g.setColor(Color.GREEN);
                g.fillRect(80, 200, 45, 15);
                g.setColor(Color.YELLOW);
                g.fillRect(120, 200, 10, 15);

            //if (numBodyParts >= 5) {
                // left foot
                g.setColor(Color.BLACK);
                g.fillRect(35, 260, 30, 15);

            //if (numBodyParts >= 6) {
                // right foot
                g.setColor(Color.BLACK);
                g.fillRect(70, 260, 30, 15);
            }
        public static void main(String[] args) {

        JFrame frame = new JFrame("Test");
        frame.getContentPane().add(new HangmanPicture());

        frame.pack();
        frame.setVisible(true);
        }


        }














我现在刚刚尝试展示它,所以我可以了解它是否有效。但它只是显示为一个灰色面板。

不确定我哪里出错了。宁愿朝着正确的方向轻推。

谢谢

java graphics jframe jpanel
© www.soinside.com 2019 - 2024. All rights reserved.