После создания экземпляра в предыдущем кадре я пытаюсь создать фоновое изображение в следующем кадре, но в результате я только что увидел отлаженный результат и обнаружил, что метод рисования не был вызван. Из того, что я знаю, метод paint наследуется классом JFrame, и с помощью этой логики я сделал его переопределенным. Как я полагаю, причина произошедшей логической ошибки в том, что я использовал обработчик событий и сделал экземпляр в EventHandlerClass.
if(e.getActionCommand().equals(ButtonTo))
if(idString.equals("USER"))
{
{
if("1234".equals(pwSt))
{
System.out.println("Wellcome");
if(gs==null)
{
gs=new GameStart();
}
}
else
{
System.out.println("Confirm your password");
}
}
}
Это код, который при выполнении действия создает экземпляр (gs). После этого я заметил, что экземпляр был использован для создания нового каркаса консоли.
class GameStart extends JFrame {
private Image screenImage;
private Graphics screenGraphic;
private Image introBackgroundImage;
private ImageIcon img;
GameStart()
{
JFrame jf=new JFrame("Game Set");
jf.setBounds(300, 300, 400, 200);
jf.setLayout(new BorderLayout());
JButton bt1=new JButton("Start");
JButton bt2=new JButton("Exit");
JPanel panel1=new JPanel();
panel1.add(bt1);panel1.add(bt2);
setContentPane(panel1);
jf.add(panel1, BorderLayout.SOUTH);
bt1.addActionListener(new Choice());
bt2.addActionListener(new Choice());
jf.setVisible(true);
img=new ImageIcon("./Images/backGroundImage.jpg");
System.out.println("1");
}
public void paint(Graphics g) {
screenImage=createImage(200, 200);
screenGraphic=screenImage.getGraphics();
screenDraw(screenGraphic);
g.drawImage(screenImage, 0, 0, null);
System.out.println("2");
}
public void screenDraw(Graphics g)
{
this.repaint();
System.out.println("3");
}
Теперь, с созданием рамки и некоторых кнопок, я ожидаю показать все числа (1, 2, 3), которые указывают на результат, но только что сделал номер 1.