0 / 0 / 1
Регистрация: 05.11.2012
Сообщений: 25
|
||||||||||||||||||||||||||||||||||||
1 | ||||||||||||||||||||||||||||||||||||
DrawLine. Найти ошибки в программе10.03.2014, 15:29. Показов 1285. Ответов 5
Метки нет (Все метки)
Есть метод
Причем выдает очень много ошибок, половина связанных с repaint. На всякий случай остальной код
0
|
10.03.2014, 15:29 | |
Ответы с готовыми решениями:
5
Найти ошибки в данной программе (известно что есть только 2 ошибки) Найти ошибки в программе Найти ошибки в программе Найти ошибки в программе |
5 / 5 / 1
Регистрация: 04.03.2014
Сообщений: 20
|
|||||||||||
11.03.2014, 20:01 | 2 | ||||||||||
Даже не знаю с чего начать..
Кликните здесь для просмотра всего текста
кстати, было бы понятнее, если бы Вы прикрепили к сообщению текст ошибки, убрав его под теги SPOILER
Далее вообще идёт безобразие
Дальше не смотрел. Напишите, в чём смысл задания. Интуитивно, чувствуется, что традиционный вывод случайных фигур, но, если возможно - формальное описание было бы лучше.
0
|
0 / 0 / 1
Регистрация: 05.11.2012
Сообщений: 25
|
|
11.03.2014, 22:07 [ТС] | 3 |
Код ошибки.
Кликните здесь для просмотра всего текста
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at figure.Panel.paintComponent(Panel.java:15) at javax.swing.JComponent.paint(JComponent.java:1054) at javax.swing.JComponent.paintChildren(JComponent.java:887) at javax.swing.JComponent.paint(JComponent.java:1063) at javax.swing.JComponent.paintChildren(JComponent.java:887) at javax.swing.JComponent.paint(JComponent.java:1063) at javax.swing.JLayeredPane.paint(JLayeredPane.java:585) at javax.swing.JComponent.paintChildren(JComponent.java:887) at javax.swing.JComponent.paintToOffscreen(JComponent.java:5226) at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java: 1529) at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1452) at javax.swing.RepaintManager.paint(RepaintManager.java:1249) at javax.swing.JComponent.paint(JComponent.java:1040) at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39) at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78) at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115) at java.awt.Container.paint(Container.java:1967) at java.awt.Window.paint(Window.java:3877) at javax.swing.RepaintManager$3.run(RepaintManager.java:819) at javax.swing.RepaintManager$3.run(RepaintManager.java:796) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:7 6) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:796) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:769) at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:718) at javax.swing.RepaintManager.access$1100(RepaintManager.java:62) at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1677) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:694) at java.awt.EventQueue$3.run(EventQueue.java:692) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:7 6) at java.awt.EventQueue.dispatchEvent(EventQueue.java:703) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242 ) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150 ) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at figure.Panel.paintComponent(Panel.java:15) at javax.swing.JComponent.paint(JComponent.java:1054) at javax.swing.JComponent.paintChildren(JComponent.java:887) at javax.swing.JComponent.paint(JComponent.java:1063) at javax.swing.JComponent.paintChildren(JComponent.java:887) at javax.swing.JComponent.paint(JComponent.java:1063) at javax.swing.JLayeredPane.paint(JLayeredPane.java:585) at javax.swing.JComponent.paintChildren(JComponent.java:887) at javax.swing.JComponent.paintToOffscreen(JComponent.java:5226) at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java: 1529) at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1452) at javax.swing.RepaintManager.paint(RepaintManager.java:1249) at javax.swing.JComponent.paint(JComponent.java:1040) at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39) at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78) at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115) at java.awt.Container.paint(Container.java:1967) at java.awt.Window.paint(Window.java:3877) at javax.swing.RepaintManager$3.run(RepaintManager.java:819) at javax.swing.RepaintManager$3.run(RepaintManager.java:796) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:7 6) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:796) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:769) at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:718) at javax.swing.RepaintManager.access$1100(RepaintManager.java:62) at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1677) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:694) at java.awt.EventQueue$3.run(EventQueue.java:692) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:7 6) at java.awt.EventQueue.dispatchEvent(EventQueue.java:703) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242 ) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150 ) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at figure.Panel.paintComponent(Panel.java:15) at javax.swing.JComponent.paint(JComponent.java:1054) at javax.swing.JComponent.paintChildren(JComponent.java:887) at javax.swing.JComponent.paint(JComponent.java:1063) at javax.swing.JComponent.paintChildren(JComponent.java:887) at javax.swing.JComponent.paint(JComponent.java:1063) at javax.swing.JLayeredPane.paint(JLayeredPane.java:585) at javax.swing.JComponent.paintChildren(JComponent.java:887) at javax.swing.JComponent.paintToOffscreen(JComponent.java:5226) at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java: 1529) at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1452) at javax.swing.RepaintManager.paint(RepaintManager.java:1249) at javax.swing.JComponent.paint(JComponent.java:1040) at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39) at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78) at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115) at java.awt.Container.paint(Container.java:1967) at java.awt.Window.paint(Window.java:3877) at javax.swing.RepaintManager$3.run(RepaintManager.java:819) at javax.swing.RepaintManager$3.run(RepaintManager.java:796) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:7 6) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:796) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:769) at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:718) at javax.swing.RepaintManager.access$1100(RepaintManager.java:62) at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1677) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:694) at java.awt.EventQueue$3.run(EventQueue.java:692) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:7 6) at java.awt.EventQueue.dispatchEvent(EventQueue.java:703) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242 ) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150 ) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) Задание: Создать приложение, удовлетворяющее требованиям, приведенным в задании. Аргументировать принадлежность классу каждого создаваемого метода и корректно переопределить для каждого класса методы equals(), hashCode(), toString(). Создать объект класса Квадрат, используя классы Точка, Отрезок. Методы: • задание размеров, • растяжение, сжатие, поворот, • изменение цвета. Задание на тему наследования. Изначально делал так: Был класс отрезок(Point), в котором были массивы(а не поля как сейчас)xn,yn (координаты точки). Этот класс наследовал класс отрезок(Segment), в котором создавались еще массивы xk, yk, т.е. получается уже есть начальные координаты точки и конечные. Далее напрягся, не знал что делать с классом квадрат (Square). Думал как можно сгруппировать в нем такие отрезки, по координатам которых, прорисовывая их, получался квадрат. Подошел к преподу спросить, тот говорит, что вообще все неправильно. Оказывается должен был придумать ещё 1 класс, в котором будут массивы объектов класса Point и Segment, потом этот класс будет наследовать класс Square. Потом он сам подошел и начал писать как должно быть. Мне почему то кажется его идея не бредовой, с такими вот потом параметры в методе drawLine(square[i].segments[i].pointsBegin[i].x ...). И потом не понимаю для чего здесь переопределять методы equals(), hashCode(),toString(). Где в программе можно эти методы применить, что бы как то логично совпадало с самим заданием?
0
|
37 / 37 / 25
Регистрация: 19.11.2012
Сообщений: 197
|
||||||
11.03.2014, 22:44 | 4 | |||||
farshmaker,
0
|
0 / 0 / 1
Регистрация: 05.11.2012
Сообщений: 25
|
|||||||||||||||||||||
12.03.2014, 00:21 [ТС] | 5 | ||||||||||||||||||||
Что-то я запутался в инициализации сквозь столько конструкторов) Получается nullpointerexception. Помогите разрулить. На данный момент вот что получилось.
0
|
5 / 5 / 1
Регистрация: 04.03.2014
Сообщений: 20
|
||||||||||||||||||||||||||
12.03.2014, 07:02 | 6 | |||||||||||||||||||||||||
Будьте последовательны. Во всех трёх кусках кода ошибки
Ну и
Рекомендую повторить инициализацию массивов (это не долго, а жизнь легче станет) и учитесь читать сообщения об ошибках) Добавлено через 7 минут Процитирую "Ошибки начинающих java-программистов" 3. Забыл проинициализировать объекты, являющиеся элементами массива. В Java массив объектов - это на самом деле массив ссылок на объекты. Создание массива - это просто создание набора ссылок, ни на что не указывающих (то есть равных null). Чтобы на самом деле создать "полноценный" массив объектов, необходимо проинициализировать каждый элемент массива. Многие студенты не понимают этого; они считают, что, создавая массив объектов, они автоматически создают сами объекты. (В большинстве случаев, студенты приносят эту концепцию из C++, где создание массива объектов приводит к созданию самих объектов путем вызова их конструктора по умолчанию). В примере ниже, студент хочет создать 3 объекта класса StringBuffer. Код будет откомпилирован без ошибок, но в последней строке произойдет исключение NullPointerException, где происходит обращение к несуществующему объекту. Ошибочный пример:
элементы массива. Исправленный пример:
1
|
12.03.2014, 07:02 | |
12.03.2014, 07:02 | |
Помогаю со студенческими работами здесь
6
Найти ошибки в программе Найти ошибки в программе Найти ошибки в программе Найти ошибки в программе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |