как реализовать Java-приложение AWT / Swing - PullRequest
1 голос
/ 14 февраля 2012

Я хочу реализовать приложение Java / AWT / Swing, но я новичок в AWT / Swing. Мне нужно нарисовать сетку, как панель. Чем перетащить некоторые объекты на него. Позже объекты могут быть кликабельны и изменять размер. Мое приложение должно выглядеть так:

desired output

Я могу нарисовать объект с помощью:

public void paint(Graphics g){}

но это слишком далеко от того, что я хочу сделать.

Как я могу реализовать такое приложение? Что я должен прочитать и знать, чтобы сделать это?

Ответы [ 3 ]

2 голосов
/ 14 февраля 2012

пожалуйста, не используйте public void paint(Graphics g){} этот метод для AWT Components и BasicXxxUI, для Swing JComponents есть ли метод public void paintComponent(Graphics g){} больше в Учебное пособие по графике

2 голосов
/ 14 февраля 2012

Вам нужно все разработать с нуля?

Для рисования, нажатия механики и т. Д. Вы можете использовать PlayN только для java-части ...

Но если вы хотите использовать возможности свинга для ... Я не уверен, что вы можете смешивать playN со свингом ...

Но если вы полагаетесь только на GraphicsAPI awt .... тогда вам нужно поискать несколько вещей.

небольшая графика enigne для рисования с возможностью точного определения (простое обнаружение столкновений), чтобы вы могли проверять каждый объект по щелчку. Движением и перекраской легко управлять с помощью простого двигателя ...

Вот действительно хорошая страница

2 голосов
/ 14 февраля 2012

Во-первых, я обязательно буду следовать учебным курсам по Swing:

Затем яНемного пересмотрю ваш подход: я бы использовал компоненты Swing.

  • Начните с JPanel на JFrame.
  • Добавьте JComponent на панель для вашей сетки.Переопределите метод paintComponent, чтобы нарисовать свою сетку.
  • Добавьте другие JComponents поверх этого для ваших объектов.Опять же, переопределите метод paintComponent для тех, кто рисует внешний вид ваших объектов.
  • Затем вы можете использовать встроенные функциональные возможности, предоставляемые JComponent, чтобы разрешать щелчки, изменение размера и т. Д. С каждым событием вызатем можно перерисовать компонент, чтобы учесть любые изменения, которые необходимо отобразить при следующем вызове paintComponent - при необходимости вызвать repaint, чтобы вызвать перерисовку.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...