Самый простой способ рисовать примитивы в Java (не OpenGL) - PullRequest
0 голосов
/ 20 мая 2010

Только начал знакомиться с графикой на Java.

Какой самый простой способ рисовать примитивы (линии, прямоугольники) в Java без OpenGL (JOGL)?

Ищем методы типа putPixel, lineTo и т. Д.

UPD.
Где рисовать? Canvas? Панель? Bitmap

Ответы [ 4 ]

5 голосов
/ 20 мая 2010

Встроенный интерфейс называется «Graphics2D».

Вот ссылка на учебник по Java Graphics2D: http://java.sun.com/docs/books/tutorial/2d/index.html

3 голосов
/ 20 мая 2010

Вы можете получить экземпляр Graphics / Graphics2D из любого компонента AWT / Swing с помощью метода рисования. JPanel, вероятно, лучше, так как он хорошо вписывается в свинг и легок, что означает, что создано только одно собственное окно - для окна верхнего уровня. Компоненты Swing также могут иметь двойную буферизацию, что означает, что рисование сначала выполняется в заэкранный буфер, а затем передается на экран. Это обеспечивает более плавный вид и позволяет избежать мерцания, которое может возникнуть при рисовании непосредственно на экране, и особенно важно для плавной анимации.

Вы можете специально рисовать в буфере за пределами экрана («растровое изображение»), который вы можете использовать впоследствии, например, чтобы нарисовать изображение для сохранения в файл позже:

   BufferedImage offImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
   Grapics2D g2 = offImg.createGraphics();

    // .. optionally set attributes ..
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
1 голос
/ 20 мая 2010

Мой недавний вопрос о горизонтальной прокрутке в Java включает крошечный маленький графический пример исходного кода, который вы могли бы использовать в качестве основы для работы.Существуют как реализации AWT, так и Swing.AWT не поддерживает горизонтальную прокрутку, поэтому я буду использовать свинг.

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

Ссылка Как использовать трекпад для горизонтальной прокрутки колесика мыши в Java AWT ScrollPane

1 голос
/ 20 мая 2010

Исходные классы пользовательского интерфейса Java называются AWT. Это были «тяжелые» компоненты, которые иногда действовали по-разному на разных системах (Windows, Mac, Unix). Эти компоненты было сложно использовать для создания графического интерфейса.

Sun разработала Swing, представляющую собой набор «легких» компонентов, которые в максимально возможной степени работают одинаково в разных системах. Эти компоненты несколько упростили разработку GUI.

Чтобы создать холст для графики, вы начинаете с javax.swing.JFrame. Вы добавляете дочернюю javax.swing.JPanel в JFrame. Вы рисуете на JPanel, переопределяя метод рисования.

Метод рисования JPanel принимает в качестве входных данных java.awt.Graphics. Вы можете привести графику к java.awt.Graphics2D. Методы Graphics2D позволяют рисовать прямоугольники, изображения, текст, линии и произвольные многоугольники.

Вы можете узнать больше о Swing, прочитав учебник Sun Создание GUI с JFC / Swing . Вы можете узнать больше о 2D-графике, прочитав учебник Sun 2D Graphics . Более подробную информацию о классах Java, которые я упомянул, можно найти в Javadoc .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...