Рисование графика с помощью Graphics2D с помощью WindowBuilder

Итак, у меня есть панель JPanel с именем displayPane, и я хочу сделать ее областью рисования для графика (я делаю графический калькулятор). Я использую WindowBuilder, и это сгенерированный код для JPanel:

JPanel displayPane = new JPanel();
displayPane.setBackground(Color.WHITE);
displayPane.setBounds(173, 33, 455, 432);
frame.getContentPane().add(displayPane);

После этого я хочу нарисовать ось графика, но я понятия не имею, как это сделать. Я везде искал об этом, но все создают класс-член или что-то в основном классе и добавляют paintComponent (Graphics g), но это меня смущает. Чего это пытается достичь? Или просто дайте мне свой способ сделать это, мне все равно, пока я это понимаю. Любая помощь приветствуется :)


person Arn ZXY    schedule 17.03.2014    source источник
comment
Я думаю, что вы, возможно, пришли сюда немного преждевременно. Вы можете начать здесь: Выполнение пользовательского рисования с помощью Swing, а затем попробовать некоторые вещи.   -  person Hovercraft Full Of Eels    schedule 18.03.2014
comment
Хорошо, я на самом деле изучал WindowBuilder, и это казалось простым, но, похоже, вам действительно нужно написать код самостоятельно, лол.   -  person Arn ZXY    schedule 18.03.2014
comment
Да, сборщики Windows ограждают вас от создания кода, но за это приходится платить — вы не научитесь создавать код. Теперь пришло время засучить рукава и запачкать руки настоящим кодированием. Это потребует усилий, чтения руководств и экспериментов. Удачи.   -  person Hovercraft Full Of Eels    schedule 18.03.2014
comment
Есть ли у вас какие-либо предложения, с чего мне следует начать с Java GUI в целом?   -  person Arn ZXY    schedule 18.03.2014
comment
Мы с Мэдом дали вам несколько ссылок. 1+ к Безумному кстати.   -  person Hovercraft Full Of Eels    schedule 18.03.2014


Ответы (2)


Поскольку это домашнее задание, я дам вам общее руководство без кода, но прежде всего прочтите эта ссылка для выполнения пользовательского рисования с помощью Swing. Затем вы должны отложить программное обеспечение Window Builder в сторону и работать над созданием собственного кода с нуля, по крайней мере, делать это до тех пор, пока вы не научитесь кодировать с помощью Swing.

Следующие предложения:

  • Пусть ваша DrawingPanel расширяет JPanel
  • Переопределить paintComponent(Graphics g)
  • Вызовите метод super в своем переопределении, super.paintComponent(g), так как это обновит графику и удалит старые «грязные» пиксели.
  • Играйте с линиями рисования, используя g.drawLine(...)`
  • продолжайте делать это, и вы поймете, что вам нужно.
person Hovercraft Full Of Eels    schedule 17.03.2014
comment
Это не домашняя работа, это просто проект, который я начал для удовольствия, хотя спасибо за ответ :) - person Arn ZXY; 18.03.2014
comment
@ArnZXY: это все еще домашняя работа - программа, которую вы делаете дома. Не имеет значения, задание это или нет. Цель состоит в том, чтобы узнать, что может быть достигнуто только с помощью кодирования. - person Hovercraft Full Of Eels; 18.03.2014

Пользовательское рисование достигается путем переопределения метода paintComponent класса, основанного на JComponent (например, JPanel).

Это дает вам доступ к поверхности рисования, на которой содержимое рисуется и в конечном итоге отображается на экране.

См. Пользовательское рисование и Рисование в AWT и Swing для получения более подробной информации.

Graphics API (или, точнее, Graphics2D API) — это мощный абстрактный набор инструментов, который предоставляет средства для фактического рисования объектов на экране.

На базовом уровне это дает вам возможность задавать цвета и рисовать основные фигуры и текст. На более сложном уровне вы можете определять свои собственные формы, выполнять более сложные цветовые эффекты, включая градиентные заливки и преобразования основного контекста.

Дополнительные сведения см. в 2D Graphics Trail.

person MadProgrammer    schedule 17.03.2014