Создать игру, создание игр, конструктора игр, игровые движки, разработка игр, сделать игру
Приветствую Вас Гость · Вход · Регистрация  ·  Новые сообщения · Участники · Правила · Поиск · RSS
  • Страница 1 из 1
  • 1
Форум разработчиков игр » Программирование » Java » Swing. Создание простого интерфейса на Java
Swing. Создание простого интерфейса на Java
DraggonFantasy Дата: Пятница, 20.09.2013, 22:41 | Сообщение # 1
Просмотр профиля: DraggonFantasy

Сообщений: [1514]
Здравствуй, уважаемый читатель. В этой статье, я расскажу о том, как можно с помощью Java создать простой интерфейс для своей программки.
Для того, чтобы создать простой пользовательский интерфейс, вы должны создать новый класс в своем пакете, который бы наследовал JFrame (находящийся в пакете javax.swing). Если класс наследует JFrame, это значит, что он представляет из себя самое простое окно, которое можно
перетащить, свернуть, развернуть или закрыть.
Итак, вы создали свой класс, наследующий JFrame, также не забудьте добавить в нем метод main. В методе main пропишите создание экземпляра
нашего класса, дабы не случилось каких-либо ошибок, связанных со "статической природой" main'а.
В конструкторе нашего класса, давайте напишем следующий код:

Код
this.setTitle("My first JFrame!"); // Указываем заголовок окна
this.setSize(800, 600); // Размер
this.setVisible(true); // Делаем окно видимым


Как вы уже поняли, все эти методы наследуются от JFrame. Можете запустить наше приложение и увидите свое окошко с названием "My first frame!" и размером 800х600 пикселей. Теперь давайте создадим кнопку, при нажатии на которую будет появляться надпись "Кликнуто!".
Создание элементов интерфейса в Java происходит очень просто: вы создаете экземпляр желаемого класса (например, JButton), а затем добавляете его на JFrame. Попробуем это и сделать:

Код
JButton button = new JButton("Кликни меня!!!"); // Создаем кнопку с текстом "Кликни меня!!!"
this.add(button);


Запускаем и!.. О, ужас! Наша кнопка заняла абсолютно все окно. А произошло это потому, что мы не задали еще один параметр нашему JFrame. А именно Layout! Именно он отвечает за разположение объектов на фрейме. По умолчанию, он содержит такое значение, при каком элемент интерфейса займет все окно (что мы, собственно, и видели). А исправить это можно с помощью метода setLayout(LayoutManager manager). Для этого добавим после строки this.setVisible(true); строку:

Код
this.setLayout(null); // Убираем Layout Manager, тем самым делая так, чтобы все элементы интерфейса распологались там, где мы пропишем и имели размеры такие, какие мы пропишем


Запускаем теперь и!.. Наша кнопка пропала вообще... А это произошло потому, что мы не указали ей ее координаты и размеры. Делается это аналогичным образом, как и с JFrame:

Код
button.setLocation(300, 200); // Устанавливаем кнопку в координатах x = 300, y = 200
button.setSize(200, 100); // Размеры: 200х100 пикселей


Или:

Код
button.setBounds(300, 200, 200, 100); // button.setBounds(x, y, Width, Height)


Теперь кнопка отображается как надо. Большая такая, красивая кнопища!
Давайте теперь сделаем так, чтобы при нажатии на нашу кнопищу выводилось какое-то сообщение. Для этого нам нужно либо создать новый класс, который бы осуществлял интерфейс ActionListener, либо сделать, чтобы наш фрейм его осуществлял. Я рекомендую использовать второй вариант, если это возможно. ActionListener - Это такой интерфейс, в котором содержится один метод - actionPerformed(ActionEvent event), этот метод вызывается, когда, например, была нажата какая-то кнопка или что-то вроде того. Итак, сделаем, чтобы наш класс осуществлял этот интерфейс, изменив его "оглавление":
public class <название_класса> extends JFrame implements ActionListener
Теперь мы можем спокойно добавить еще пару строк в наш конструктор:

Код
button.setActionCommand("Button1"); // Задаем строку, которая будет отправляться в обработчик событий
button.addActionListener(this); // Делаем так, чтобы кнопка при нажатии вызывала метод actionPefrormed() из нашего класса


Здесь мы видим, что я задал какую-то там строку, которая куда-то будет отправляться. На самом деле, поскольку у нас одна-единая кнопка, это делать необязательно, но я решил все-таки рассказать и о таком способе обработки событий. Так вот. Вы наверняка заметили, что в метод actionPerformed() передается некий объект ActionEvent. Этот объект содержит данные о событии, в том числе и эту некую ActionCommand. То есть, при нажатии на нашу заветную кнопочку, в событие ActionEvent будет передана строка "Button1".
Зачем нужна вся эта путаница? Для того, чтобы не создавать по классу на каждую кнопку, ведь если у нас не одна кнопка, а, допустим, кнопок двадцать? Будет неудобно иметь такие классы: ActionListenerButton1, ActionListenerButton2, да и не экономно. А вот эта одна строчка позволит различать, какая же кнопка была нажата.
Посмотрим теперь на сам метод обработки события:

Код
public void actionPerformed(ActionEvent event)
{
     if(event.getActionCommand().equals("Button1")) // Если строка, поступившая от "виновника торжества" равна строке, отправляемой нашей кнопкой
     {
        JOptionPane.showMessageDialog(this, "Кликнуто!"); // Выводим диалоговое окошко с текстом "Кликнуто!".
     }
}


На этом все! Теперь вы можете создавать свои простенькие (и не очень) интерфейсы, с использованием Swing (так называется библиотека Java, которую мы использовали).
3dmaker Дата: Вторник, 08.10.2013, 08:34 | Сообщение # 2
Просмотр профиля: 3dmaker

Сообщений: [473]
Статья будет полезна для новичка. =)

Ностальгирую
Форум разработчиков игр » Программирование » Java » Swing. Создание простого интерфейса на Java
  • Страница 1 из 1
  • 1
Поиск:

При полном или частичном копировании материалов сайта ссылка на Make-Games.ru обязательна. Make-Games.ru © 2008 - 2024 Хостинг от uCoz
Топ Разработка игр