висит графика

Модератор: Absurd

Ответить
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

В программе частенько зависает графика (swing).
Открываешь одно окошко, а оно - серое, и после этого все окна - серые и не закрываются.

Никаких сообщений об ошибках, ничегошеньки !!

Я тут набросал один примерчик.
Я знаю, где в нём ошибка. Хоть доказать этого и не могу.

Код: Выделить всё

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 не ставил, а она всё равно виснет ..
Ответить