Метод Canvas Paint не работает с JLayeredPane - PullRequest
1 голос
/ 06 августа 2020

Я пытался создать два слоистых изображения в JFrame с помощью JLayeredPane, однако я не могу нарисовать фигуру с помощью функции paint () в классе Canvas. Вот что я написал:

package com.baduk.main;

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;

public class Game extends Canvas implements Runnable {

    private ImageIcon icon;
    private JLabel back;
    private JLayeredPane layer;
    /**
     * 
     */
    private static final long serialVersionUID = -3441156857004256039L;

    public Game() {
        
        //Background image with depth 0 
        icon = new ImageIcon("C:/Users/scaraven/Downloads/baduk_board.png");
        back = new JLabel(icon);
        back.setBounds(0,0,icon.getIconWidth(),icon.getIconHeight());
        
        //Create JFrame
        JFrame frame = new JFrame("BADUK");
        frame.setSize(new Dimension(icon.getIconWidth()+5,icon.getIconHeight()+25));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
        
        //Create JLayeredPane
        layer = new JLayeredPane();
        
        
        layer.add(back,new Integer(1));
        layer.add(this,new Integer(0));
        
        
        frame.setContentPane(layer);
        frame.setVisible(true);
    }
    
    public static void main(String[] args) {
        new Game();

    }

    @Override
    public void run() {
        // TODO Auto-generated method stub
        
    }
    public void paint(Graphics g) {
        g.setColor(Color.black);
        g.fillRect(10, 10, 100, 100);
    }

}

Согласно тому, что я написал, Jframe должен создаваться с изображением в качестве фона и черным прямоугольником сверху, однако я получаю только изображение. Кто-нибудь знает, что не так с написанным мной кодом и что мне нужно изменить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...