Открываешь одно окошко, а оно - серое, и после этого все окна - серые и не закрываются.
Никаких сообщений об ошибках, ничегошеньки !!
Я тут набросал один примерчик.
Я знаю, где в нём ошибка. Хоть доказать этого и не могу.
Код: Выделить всё
import java.awt.Graphics;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Test extends JFrame {
public Test(int x) {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(x, 0, 400, 300);
add(new MyButton());
setVisible(true);
}
class MyButton extends JButton {
public void paintComponent(Graphics g) {
setBackground(null);
super.paintComponent(g);
}
}
public static void main(String[] args) {
new Test(0);
new Test(400);
}
}
Второе окошко появляется на 5 секунд позже, после первого!
Конечно, если закомментировать строку:
//setBackground(null);
то всё срабатывает моментально!
Но вопрос-то в другом ..
Эту особенность поведения программы я нашел случайно.
А как в общем искать такие ошибки?
В большой программе, не такая ошибка, никто там Background в null не ставил, а она всё равно виснет ..