Я создаю программу, в которой пользователь может рисовать линии и стирать их. Я могу создать свое окно и создать функционирующий JMenuBar. Когда возможности рисования не включены, все в порядке. Но когда функция рисования включена, второй JMenuBar окрашен ниже оригинала. Эта строка меню не работает, и иногда, когда она нарисована, ВСЕ графики на экране также перекрашены ниже. Повторная калибровка окна каким-либо образом устраняет эту проблему.Метод repaint() вызывает появление второго, нефункционального JMenuBar?
Я бы разместил фотографии, но, вы знаете, я новый пользователь и не могу.
Я смог сузить проблему до точки в методе paint(). Необходимо знать: при перетаскивании мыши вызывается метод repaint(). Он использует мой метод paint(), который вызывает метод paintObject (Graphics g) в моем классе Line. Ошибка JMenuBar появляется в END метода краски в верхнем классе.
public void paint(Graphics g)//paint() in the top class
{
for(int i = 0; i < objs.size(); i++)//Loop that finds all Tool(Line) objects that
((Tools)objs.get(i)).paintObject(g);//have been drawn, and redraws them.
//This part of the code completes successfully with no error.
}//ERROR OCCURS HERE!!!!!!
Я понятия не имею, почему это происходит. В качестве побочного примечания на экране есть также JTextField, который не появляется, пока он не будет подсвечен. Спасибо, по крайней мере, за это!
Вам нужно рассказать больше, намного больше. Для всех, кого мы знаем, вы можете делать что-то ужасно неправильное, например, рисовать прямо в окне верхнего уровня, таком как JFrame или JApplet. Я предполагаю, что вы не делаете этого, чтобы правильно рисовать JPanel или JComponent, и если это так, рисовать метод paintComponent не рисовать. Также вы захотите опубликовать [SSCCE] (http://sscce.org), чтобы лучше проверить ваш код. –
, пожалуйста, напишите скриншот –
также заметили, вы должны позвонить super.paint (g) –