Привет, ребята! У меня проблема с моим кодом. Я хочу установить фон JFrame, добавив JLabel, на котором я нарисовал изображение.
Но изображение не отображается, кстати, изображение читается правильно (без исключений).
Я работаю с несколькими классами: Var. java, Label. java, Gui. java -> Все в одной упаковке
public class Main {
public static void main(String[] args) {
new Gui();
new Label();
new Var();
new KeyHandler();
}
}
import java.awt.Color;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Gui {
public Gui() {
Var.jf1 = new JFrame();
Var.jf1.setSize(Var.breite, Var.höhe);
Var.jf1.setLocationRelativeTo(null);
Var.jf1.setLayout(null);
Var.jf1.setTitle("Meriadoc Brandybock");
Var.jf1.setResizable(false);
Var.jf1.requestFocus();
Var.jf1.addKeyListener((KeyListener) new KeyHandler());
Var.jf1.setVisible(true);
Var.lbl1 = new Label();
Var.lbl1.setBounds(0, 0, Var.breite, Var.höhe);
Var.lbl1.setVisible(true);
Var.jf1.add(Var.lbl1);
}
}
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.JLabel;
public class Label extends JLabel{
protected void paintcomponent(Graphics g){
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.drawImage(Var.b1, 0, 0, 1000, 600, null);
repaint();
}
}
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
public class Var {
static JFrame jf1;
static Label lbl1;
static int breite = 1000;
static int höhe = 600;
static boolean moveUP = false;
static boolean moveDOWN = false;
static boolean moveRIGHT = false;
static boolean moveLEFT = false;
static BufferedImage b1;
public Var() {
try {
Var.b1 = ImageIO.read(new File("rsc/b1.png"));
} catch(IOException e){
e.printStackTrace();
System.out.println("Background konnte nicht geladen werden");
}
}
}
Большое спасибо заранее за ваши ответы!