Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
21 / 20 / 3
Регистрация: 08.12.2012
Сообщений: 92

Помещение Graphics в апплет

27.03.2013, 16:34. Показов 982. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните, почему такой апплет:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.applet.Applet;
import java.awt.*;
 
public class Forma extends Applet
{
    public Graphics graph;
    public void paint(Graphics g) {
        Forma();     
    }
    public void Forma()
    {
        graph = getGraphics();
        graph.drawLine(0, 0, 100, 100);
    }
}
выполняется правильно, в то время как
Java
1
2
3
4
5
6
7
8
9
10
11
12
import java.applet.Applet;
import java.awt.*;
 
public class Forma extends Applet
{
    public Graphics graph;
    public Forma()
    {
        graph = getGraphics();
        graph.drawLine(0, 0, 100, 100);
    }
}
выдаёт ошибку NullPointerException на строке graph.drawLine? Непонятно, как метод paint, которому ещё и Graphics нужно передавать исправляет эту ошибку. И как всё-таки правильно поместить Graphics в апплет?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.03.2013, 16:34
Ответы с готовыми решениями:

Graphics.SetClip Method (GraphicsPath) и Graphics.Clear Method vs Graphics.FillPath Method (System.Drawing)
У нас два способа залить форму: 1. Graphics.SetClip Method (GraphicsPath) and Graphics.Clear 2. Graphics.FillPath Method...

Где скачать Borland С++ с поддержкой graphics.h. Уроки по библеотеке graphics.h
Подскажите, нужен Borland С++ с поддержкой graphics.h. Я видел только 1 борланд и выглядело все там не так как мне нужно. Есть новый...

VPU Recover has reset your graphics accelerator as it was no longer responding to graphics driver commands
При запуске даже простых офисных игр комп виснет,монитор гаснет и иногда вылезает сообщение:VPU Recover has reset your graphics accelerator...

2
2 / 2 / 1
Регистрация: 21.11.2011
Сообщений: 183
01.04.2013, 01:46
я совсем нуб в этом, но наверное соль в том, что во втором случае, у тебя как бы формы вообще нет, ты ее ни в каком методе не создаешь, не вызываешь, не рисуешь, в общем у тебя есть только абстракция, а конкретного ничего нет, экземпляра класса нет, и ты от некоторой абстракции хочешь взять что-то и присвоить переменной graph...тобишь нуль, а после из ничего хочешь еще и метод какой-то вызвать....а paint сдесь наверное как бы создает объект твоего фрейма или что-нибудь в роде этого=))))) Но вообще, наверное ты не правильно делаешь, там вроде есть функция run...
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
02.04.2013, 11:28
Мама, роди меня обратно...

1. Конструктор вызывается при создании объекта. На этой стадии компонента не ассоциирована ни с каким графическим устройством, ибо не добавлена ни в какой native-контейнер. Соответственно, попытка получить графический контекст компоненты предсказуемо заканчивается получением null.

2. paint вызывается при отрисовке компоненты. В этот момент она уже добавлена в контейнер и ассоциирована с графическим устройством. В paint передается контекст устройства, на котором компонента отрисовывает себя.

В общем, читайте:

P.S. Alberto_Timakov - вот честно, если Вы ну совершенно не владеете предметом, не надо пытаться что-то придумать. Скорее всего это будет неправильно. Гораздо полезнее что-то почитать по теме. Ничего личного.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.04.2013, 11:28
Помогаю со студенческими работами здесь

Lenovo y570. Switchanable graphics / uma graphics. Поломка
Имеется 2 видеокарты. 1 - встроенная intel HD3000. 2 - geforce gt555m. В биосе есть переключатель uma graphics(только встроенная...

Graphics.DrawImageUnscaled и есть Graphics.DrawImage
Подскажите пожалуйста. Чем отличаются методы Graphics.DrawImageUnscaled и есть Graphics.DrawImage?

Помещение объектов в бд
Вечер добрый, спроектировал БД и столкнулся со следующей проблемой. Например у меня есть пару таблиц которые описывают некоторые сущности....

Помещение в автозапуск
Как сделать чтоб программа при запуске автоматически переходила в автозапуск?

Помещение под ДК
Прежде чем купить домашний кинотеатр, надо убедится в том, что ваше помещение под него подойдет. В связи с этим вопрос, какая должна быть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru