, поэтому я просто изучаю Java GUI (JFrame
, JPanel
и т. Д.), И я столкнулся с этой проблемой: когда я перекрашиваю свою панель и продолжаю добавлять кнопки на ту же панель, кнопки как бы заикаются итолько половина появляется, когда я наводю указатель мыши на кнопку.
Я разделю свой код на несколько классов ниже, так что, надеюсь, кто-то с большим опытом сможет определить, в чем проблема.
import javax.swing.JFrame;
public class Main
{
public static void main(String[] args)
{
new Test();
}
}
Выше находится первый класс
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.image.*;
import javax.imageio.*;
import java.io.*;
public class Test extends JFrame
{
private menuPanel MENUPANEL;
public Test()
{
super("My Game");
setLayout(new BorderLayout());
MENUPANEL = new menuPanel();
add(MENUPANEL, BorderLayout.CENTER);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(660,360);
setResizable(false);
setVisible(true);
}
}
Вот мой класс, который создает начальный кадр.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.image.*;
import javax.imageio.*;
import java.io.*;
public class menuPanel extends JPanel
{
private JButton btn1, btn2, btn3;
private JPanel menuPanel;
private ImageIcon mypic;
public menuPanel()
{
JButton btn1 = new JButton("START GAME");
btn2 = new JButton("EXIT GAME");
btn3 = new JButton("OPTIONS");
setLayout(new FlowLayout());
add(btn2);
add(btn1);
add(btn3);
}
@Override
public void paint (Graphics g)
{
super.paintComponents(g);
ImageIcon i = new ImageIcon("background.gif");
i.paintIcon(this, g, 0,0);
}
}
Наконец, вот мой класс панели.
Пожалуйста, извините, если я использовал какую-то неправильную терминологию и т. Д. Я искал решение этой проблемы в течение нескольких часов и имею лишь несколько часов опыта работы с Java GUI.