java рисование на jpanel

Я пытаюсь добавить 2 разные панели в рамке. одна панель добавляет несколько кнопок в рамке. другой кадр добавит шахматную доску в кадр. я запутался, как нарисовать эту доску на панели. моя рамка будет иметь доску сверху и кнопки внизу. Кроме того, дайте мне знать, если я что-то не так в данном коде, кто-нибудь может мне помочь? мой код

4 Ryan [2010-07-02 00:53:00]

Я пишу графический пользовательский интерфейс для построения данных по оси xy. Он написан на Java Swing, поэтому у меня есть JFrame , который содержит весь графический интерфейс. Одним из компонентов GUI является JPanel , который составляет область, где данные отображаются. Я использую Graphics2D для рисования.

Я пытаюсь сделать расширение командной строки этой программы. Идея состоит в том, что пользователь может указать данные, которые они хотят построить в файле конфигурации. Это позволяет проводить интересные сметы параметров, которые экономят много времени.

Проблема возникает, когда я пытаюсь получить объект Graphics для рисования с помощью. Я создаю JPanel , который выполняет чертеж, но объект Graphics имеет значение null, когда я вызываю paintComponent() .

Кроме того, когда вы запускаете программу (из командной строки снова), она крадет фокус из всего, что вы пытаетесь сделать (если эта программа работает в фоновом режиме). Есть ли все равно, чтобы обойти это? Вам нужно создать JPanel для рисования?

Я работаю над проектом, в котором я пытаюсь сделать программу рисования. До сих пор я использовал Netbeans для создания графического интерфейса и настройки программы.

Как сейчас, я могу назвать все согласованные, необходимые для рисования внутри него, но я очень смущен тем, как рисовать внутри него.

К концу моего кода у меня неудачная попытка рисования внутри панели.

Может ли кто-нибудь объяснить/показать, как использовать графику в примере, подобном этому?

Все примеры, которые я нашел, создают класс и расширяют его с помощью JPanel , но я не знаю, могу ли я это сделать, поскольку он был сгенерирован в netbeans.

Мне нужно рисовать внутри JPanel внутри моего JFrame . Я не знаю, где поставить графический класс.

Содержание

  1. Класс JavaPaintUI
  2. Снимок экрана
  3. Экранный снимок
  4. Другие примеры — больше подходят для нескольких строк и нескольких сегментов линии

Класс JavaPaintUI

Снимок экрана

Все дело в JFrame , а белая часть в центре — jPanel2 , на что я хочу рисовать.

Обратите внимание на дополнительные комментарии.

Экранный снимок

Другие примеры — больше подходят для нескольких строк и нескольких сегментов линии

HFOE поставил хорошую ссылку в качестве первого комментария к этой теме. Camickr также имеет описание активной картины по сравнению с рисунком BufferedImage в статье «Подход под заказ» .

См. также этот подход, используя рисунок в BufferedImage .

При работе с графическими пользовательскими интерфейсами вам нужно помнить, что рисование на панели выполняется в Java AWT/Swing event queue. Вы не можете просто использовать объект Graphics вне paint() / paintComponent() /etc. Методы.

Однако вы можете использовать технику под названием Буферизация кадров «. В принципе, вам нужно иметь BufferedImage и рисовать непосредственно на нем (см. Метод createGraphics() ; этот графический контекст, который вы можете сохранить и повторно использовать для нескольких операций на тот же BufferedImage экземпляр, не нужно воссоздавать его все время, только при создании нового экземпляра). Затем в JPanel paintComponent() вам просто нужно нарисовать экземпляр BufferedImage до JPanel . Используя этот метод, вы можете легко выполнять операции масштабирования, трансляции и вращения с помощью аффинных преобразований.

Источник: computermaker.info

Техника и Гаджеты
Добавить комментарий