Я строю PongClone, но сталкиваюсь с ошибкой.** Я думаю, что ошибка вызвана JPanel.
Я попробовал изображение вместо BufferedImage.Я попробовал drawImage вне метода paintComponent.Я создаю другую панель и затем добавляю эту панель внутри главной панели.
Класс меню
package me.pong;
import javax.swing.*;
public class TestMenu {
JFrame frame;
public void createFrame () {
TestMain main = new TestMain ();
frame = new JFrame("TEST");
frame.setSize (800, 450);
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.getContentPane ().add (main.panel);
frame.setVisible (true);
}
}
MainClass
package me.pong;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
public class TestMain extends JPanel {
JPanel panel = new JPanel ();
BufferedImage img;
Graphics g;
public static void main (String[] args) {
TestMain testMain = new TestMain ();
TestMenu menu = new TestMenu ();
menu.createFrame ();
testMain.drawGraphics ();
}
public void drawGraphics(){
panel.add (new TestMain ());
img = new BufferedImage(800, 450, BufferedImage.TYPE_INT_RGB);
g = img.createGraphics ();
g.drawString ("TEST STRING 2", 250,250);
}
@Override
protected void paintComponent (Graphics g) {
super.paintComponent (g);
g.clearRect (0,0,800,450);
g.drawImage (img, 0,0,null);
g.setColor (Color.white);
g.drawString ("TEST STRING", 500,250);
g.setColor (Color.black);
g.drawRect (150,100,10,70);
}
}
Я ожидаю, что изображение заполнит компонент, но фактическоевыход маленькая крошечная коробка. Точно так же
РЕДАКТИРОВАТЬ: Удалите код и добавили код MCVE / SSCCE (я этого не знал).Все тот же.Если я добавлю изображение в рамку, это будет работать, а другой - нет.Я знаю, что что-то упустил, но я не знаю, что это такое.
** Да.Проблема вызвана JPanel, но я не знаю, как ее исправить.