У любого разработчика начинается такое время, когда создавать консольные приложения уже не весело, а изучить что-то новое очень хочется.
Тогда в Java есть несколько путей, для нескольких ОС. В зависимости от тех ОС которые вы используете или окружений которые в них установлены.
Для начала стоило бы уделить внимание библиотеке GTK+
Она доступна не только для Явы, но и многих других языков: C++,C и т.д.
Написание Desktop'ных приложений с помощью GTK следует использовать если приложение рассчитано для работы под средой GNOME.
Сама GTK+ считается одной из самых легких для освоения библиотек под Jav'у.
Основа работы с библиотекой:
Для начала нужно подключить саму библиотеку со всеми ее вытекающими:
Если вышла ошибка, то скорее всего у вас просто не установлена библиотека.
Если юзаете систему типа Debian или Ubuntu, то вам поможет простая команда из терминала:
apt-get install libjava-gnome-java
После этого проблем быть не должно.
В конечном итоге получаем пустое окошко.
Далее можно ставить AWT или SWT, по сути это одно и тоже, только в разных обличиях.
AWT — считается оригинальной системой для разработки графических интерфейсов, ее ругают из-за того, что она
не всегда стабильно работает на разных платформах, но сейчас таких проблем вроде не наблюдается и работать с ней удобно.
Имхо, это мой выбор.
SWT — это детище от IBM, долизанная и перелизанная система, обычно отличается стабильностью при работе и легкой в освоении.
Но SWT тяжеловеснее AWT, обладает большим функционалом, в следствии чего сложней AWT.
Но ее я бы не стал использовать часто, хотя она довольно популярна и держит свои позиции.
Вот пример окна на AWT:
А вот нам пример окна на SWT:
Далее в очереди идет такая штука Swing.
Она в приципе тоже не сложная, мультиплатформенная. Отличается большим количеством фич и малым количеством подключаемых пополнений.
Вот пример окна со swing'ом:
Это был основной список графических сред на Java. Почти все представленные здесь «штуки» мультиплатформенны
и работают на любом компьютере — Win, Linux, Mac.
Тогда в 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 {
public DesktopExample() {
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.
Но ее я бы не стал использовать часто, хотя она довольно популярна и держит свои позиции.
Вот пример окна на AWT:
// Подключаем всякие фичи, хотя swing тут лишний, это я в своем приложении прикручивал
// Это просто обрезок кода
import java.awt.EventQueue;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
public class Main {
private JFrame frame;
/**
* Запуск приложения, что-то типо первоначальной настройки, создание окна и типа того.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Main window = new Main();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Вызываем саму инициализацю
*/
public Main() {
initialize();
}
/**
* Инициализация окна
*/
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 class ExampleApp {
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.