Создание пользовательского интерфейса

В данной работе будем создавать интерфейс пользователя «вручную», т. е. без использования конструктора форм.

Создайте новый проект: простое приложение Java. Имя главного класса назовите Tetris пакет tetris.

После создания проекта необходимо сделать наш главный класс «наследником» класса JFrame, который описывает окно программы.

public class Tetris extends JFrame {

}

Таким образом наше консольное приложение превращается в программу с графическим интерфейсом.

Добавим в класс переменную уровня класса типа javax.swing.Timer с именем timer.

Далее создадим конструктор главного класса со строковым параметром:

Tetris(String s) {

super(s);

timer = new Timer(400, null); //создаем таймер

//сюда в будущем будет добавлен код,

//добавляющий элементы управления

setSize(300, 300);

setVisible(true);

}

И изменим метод main():

public static void main(String[] args) {

try {

UIManager.setLookAndFeel(

UIManager.getSystemLookAndFeelClassName());

} catch (Exception e) {}

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

JFrame frame = new Tetris("Тетрис");

frame.setDefaultCloseOperation(EXIT_ON_CLOSE);

}

});

}

Запустите программу и посмотрите, что у вас получилось.

Следующим шагом добавим меню. Меню будет состоять из меню «Файл» и иметь пункты меню «Новая игра» и «Выход».

Для этого:

//добавляем объект «строка меню»,

JMenuBar mbar = new JmenuBar();

//создаем меню «Файл»

JMenu mm = new Jmenu("Файл");

//создаем пункты меню

JMenuItem mNewGame = new JMenuItem("Новая игра");

JMenuItem mExit = new JmenuItem("Выход");

//добавляем пункты в меню

mm.add(mNewGame);

mm.add(new Jseparator()); //разделитель

mm.add(mExit);

//добавляем меню в строку меню

mbar.add(mm);

//устанавливаем полученное меню на форму

setJMenuBar(mbar);

//добавляем обработчики выбора пунктов меню

//для «Выход»

mExit.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {timer.stop(); dispose(); }

});

//для «Новая игра»

mNewGame.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

//startNewGame();

}

});

Добавьте этот код в конструктор перед вызовом setSize(). Запустите программу. Как работает меню?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: