Java с хорошей графикой

Выбор библиотеки для создания графического интерфейса Java

У любого разработчика начинается такое время, когда создавать консольные приложения уже не весело, а изучить что-то новое очень хочется.
Тогда в Java есть несколько путей, для нескольких ОС. В зависимости от тех ОС которые вы используете или окружений которые в них установлены.

Небольшое предисловие:
Сам я являюсь пока еще начинающий программистом ( могу писать софт средней сложности, но использую обычно скудный набор функций)
Статья рассчитана так же на новичков. Сам я работаю под Debian с Гномом, так что будут библиотеки мультиплатформенные)

Для начала стоило бы уделить внимание библиотеке GTK+

Она доступна не только для Явы, но и многих других языков: C++,C и т.д.

Написание Desktop’ных приложений с помощью GTK следует использовать если приложение рассчитано для работы под средой GNOME.

Сама GTK+ считается одной из самых легких для освоения библиотек под Jav’у.

Основа работы с библиотекой:

Для начала нужно подключить саму библиотеку со всеми ее вытекающими:

import org.gnome.gdk.Event ;
import org.gnome.gtk.Gtk ;
import org.gnome.gtk.Widget ;
import org.gnome.gtk.Window ;
import org.gnome.gtk.WindowPosition ;

Если вышла ошибка, то скорее всего у вас просто не установлена библиотека.

Если юзаете систему типа Debian или Ubuntu, то вам поможет простая команда из терминала:
apt-get install libjava-gnome-java

После этого проблем быть не должно.

public class DesktopExample extends Window

setTitle ( «Пример окна на GTK и Гноме» ) ; // Название приложения

connect ( new Window . DeleteEvent ( ) <
public boolean onDeleteEvent ( Widget source, Event event ) <
Gtk. mainQuit ( ) ;
return false ;
>
> ) ;

setDefaultSize ( 250 , 150 ) ; // Размер
setPosition ( WindowPosition. CENTER ) ; //Позиция при запуске, в данном случае центр
show ( ) ;
>

public static void main ( String [ ] args ) <
Gtk. init ( args ) ;
new DesktopExample ( ) ;
Gtk. main ( ) ;
>
>

В конечном итоге получаем пустое окошко.

Далее можно ставить AWT или SWT, по сути это одно и тоже, только в разных обличиях.

AWT — считается оригинальной системой для разработки графических интерфейсов, ее ругают из-за того, что она
не всегда стабильно работает на разных платформах, но сейчас таких проблем вроде не наблюдается и работать с ней удобно.
Имхо, это мой выбор.
SWT — это детище от IBM, долизанная и перелизанная система, обычно отличается стабильностью при работе и легкой в освоении.
Но SWT тяжеловеснее AWT, обладает большим функционалом, в следствии чего сложней AWT.
Но ее я бы не стал использовать часто, хотя она довольно популярна и держит свои позиции.

// Подключаем всякие фичи, хотя swing тут лишний, это я в своем приложении прикручивал
// Это просто обрезок кода
import java.awt.EventQueue ;
import javax.swing.* ;
import java.awt.* ;
import java.awt.event.* ;

/**
* Запуск приложения, что-то типо первоначальной настройки, создание окна и типа того.
*/
public static void main ( String [ ] args )

Читайте также:  Знакомство с GET-запросами

EventQueue . invokeLater ( new Runnable ( ) <
public void run ( ) <
try <
Main window = new Main ( ) ;
window. frame . setVisible ( true ) ;
> catch ( Exception e ) <
e. printStackTrace ( ) ;
>

/**
* Вызываем саму инициализацю
*/
public Main ( )

/**
* Инициализация окна
*/
private void initialize ( ) <
frame = new JFrame ( «Чистое окно сгенерированное через Eclipse» ) ; // Делаем новое окно с названием
frame. setBounds ( 100 , 100 , 450 , 300 ) ;
frame. setSize ( 800 , 800 ) ; // Размеры
frame. setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE ) ;

А вот нам пример окна на SWT:

//Подключаем всякие фичи для веселой жизни
import org.eclipse.swt.SWT ;
import org.eclipse.swt.widgets.Display ;
import org.eclipse.swt.widgets.Shell ;
import org.eclipse.swt.widgets.Text ;

public static void main ( String [ ] args ) <
Display display = new Display ( ) ;
Shell shell = new Shell ( display ) ;

shell. pack ( ) ; //Подготовка ( первичная)
shell. open ( ) ; //Подготавливаем
while ( ! shell. isDisposed ( ) ) < //Запускаем
if ( ! display. readAndDispatch ( ) ) display. sleep ( ) ; //Спим до поры, до времени
>
display. dispose ( ) ;
>
>

Далее в очереди идет такая штука Swing.

Она в приципе тоже не сложная, мультиплатформенная. Отличается большим количеством фич и малым количеством подключаемых пополнений.

Вот пример окна со swing’ом:

import javax.swing.JFrame ;
import javax.swing.SwingUtilities ;

public class Example extends JFrame

public Example ( ) <
setTitle ( «Пример приложения со Свингой» ) ;
setSize ( 300 , 200 ) ;
setLocationRelativeTo ( null ) ;
setDefaultCloseOperation ( EXIT_ON_CLOSE ) ;
>

public static void main ( String [ ] args ) <
SwingUtilities . invokeLater ( new Runnable ( ) <
public void run ( ) <
Example ex = new Example ( ) ;
ex. setVisible ( true ) ;
>
> ) ;
>
>

Это был основной список графических сред на Java. Почти все представленные здесь «штуки» мультиплатформенны
и работают на любом компьютере — Win, Linux, Mac.

Источник

Графический редактор в Java: создание и работа с примерами

Lorem ipsum dolor

Приведем несколько примеров, как в Java «начертить» простую график у б ез использования дополнительных библиотек.

Чертим прямую линию

public void paint(Graphics f)

Читайте также:  Send keyboard key python

f.drawLine(40, 50, 380, 50)

>;

где, 40 и 50 — координаты «x и y», а 380 и 50 — координаты конца прямой.

Задаем расцветку прямой

public void paint(Graphics f)

Color oldColor = f.getColor(); //фиксируем исходную расцветку

Color newColor = new Color (1, 1, 255)//формируем новую расцветку

f.setColor(newColor)//определяем новую расцветку

f.drawLine(40, 50, 380, 50)//выводим нашу прямую с новой расцветкой

f.setColor(oldColor);//определяем исходную расцветку

>;

Задаем цвет фона

public void paint(Graphics f)

mainFrame.setBackground(Color.green);

>;

Рисуем прямоугольник

public void paint(Graphics f)

f.drawRect(40, 50, 380, 50)

>;

гд е 4 0 и 50 — координаты верхнего левого угла, 380 — длина, а 50 — высота.

Рисуем прямоугольник и закругл яе м ему углы

public void paint(Graphics f)

f.drawRoundRect(40, 50, 380, 50, 40, 35)

>;

гд е п ервые 4 аргумента — как и в примере выше, 40 — ширина прямоугольника, в который вписан овал сопряжения, а 35 — высота прямоугольника, в который вписан овал сопряжения.

Рисуем овал

public void paint(Graphics f)

f.drawOval(30, 100, 140, 70)

>;

где числа — это аргументы прямоугольника, в который вписан овал.

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

Заключение

Графика в Java требует определенных навыков работы с самим языком и дополнительными библиотеками. Мы показали, как происходит рисование примитивных фигур. Однако примитивными фигурами невозможно разработать полноценную 3D-игру. Для 3D-игры на Java нужны совсем другие знания.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Источник

Как начать работать с графикой в Java

Eclipse — кроссплатформенная среда разработки, поддерживает множество языков программирования, среди которых есть и Java. Данный урок будет посвящён написанию простых графических приложений на языке Java в Eclipse.

Для начала вам нужно загрузить и установить Eclipse. Распакуйте архив в удобное для вас место. После распаковки программа готова к работе, если на вашем компьютере установлена Java.

Читайте также:  Send raw http request python

Запустите Eclipse и создайте новый проект: File>New>Project>Java Project.

Выберите версию Java, для которой будут создаваться проекты, если у вас установлено несколько версий. Введите имя проекта и нажмите Finish.

Создайте новый класс Этот класс будет запускаться при запуске приложения, прорисовывать окно и элементы на нём.

import java.awt.*; import javax.swing.*; public class Window{ public static void main(String[] args) { /* Задание заголовка окна*/ JFrame w=new JFrame("Окно с изображением"); /*Задание размеров окна*/ w.setSize(400, 400); /* Если у окна не будет функции закрытия, * при нажатии крестика окно не закроется.*/ w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /* Менеджер определяет * каким образом в окне расположены объекты.*/ w.setLayout(new BorderLayout(1,1));

Таким образом будет описано окно, но для того, чтобы оно появилось на экране, нужно задать настройки видимости. Теперь добавьте то, что будете рисовать в окне. Для этого создайте новый класс в этом же файле, расширяющий класс JComponent. В JComponent описываются основные методы для объектов java.swing. Для Graphics2D описаны методы, позволяющие рисовать линии, заливать области. Так для рисования прямоугольника используется метод drawRect().

/* Класс, который будет рисовать элементы*/ class Canvas extends JComponent{ /*Метод, перерисовывающий элемент внутри окна *при обновлении*/ public void paintComponent(Graphics g){ super.paintComponents(g); Graphics2D g2d=(Graphics2D)g; /* Устанавливает цвет рисования в зелёный*/ g2d.setPaint(Color.GREEN); /* Рисует текущим цветом прямоугольник */ g2d.drawRect(100, 100, 80, 20); g2d.setPaint(Color.RED); /* Рисует текущим цветом в координатах (150,150) строку "привет мир"*/ g2d.drawString("Привет мир", 150, 150); g2d.setColor(Color.blue); /* Рисует текущим цветом овал в координатах (200,50)*/ g2d.fillOval(200, 50, 50, 20); /* Вызывает обновление себя после завершения рисования */ super.repaint(); } }

Теперь есть компонент, который будет прорисовываться при обращении к нему. Осталось прикрепить его к окну. Для этого в методе main добавьте элемент Canvas к окну и сделайте окно видимым.

Canvas canv=new Canvas(); w.add(canv); w.setVisible(true); } }

После сохранения файла можно запустить программу, выбрав в меню Run>Run либо нажав комбинацию ctrl+F11.
Результат:

Источник

Оцените статью