Я пытался создать два слоистых изображения в 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 должен создаваться с изображением в качестве фона и черным прямоугольником сверху, однако я получаю только изображение. Кто-нибудь знает, что не так с написанным мной кодом и что мне нужно изменить?