Пятница, 18.07.2025, 01:27
Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
.:: Меню ::.
.:: Категории каталога ::.
Разное [5]
Различные темы по программированию
Пакет SWT [4]
Практикуемся в написании оконных приложений на Java
Среды разработки, компиляторы и т.п [3]
Сравнения, описания, плюсы и минусы сред разработки. Сравнение компиляторов.
Java [8]
Объектно-ориентированные соображения.
Си++ [19]
Коротко и ясно
Ассемблер [6]
Машинные коды, побитно :)
Форма входа
.:: Поиск ::.
.:: Дополнительно ::.
    Хостинг от Loqo.ru
             .:: Коментируем ::.
Главная » Статьи » Текстовый материал » Пакет SWT

Игра - сколько бабке лет ? GUI вариант с использованием SWT
Code

package babgamegui;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;

public class Main
{
  static Text yourAgeTxt;
  static Text babAgeTxt;
  static Button butCompare;
  protected static int yourAge=0;
  protected static int babAge=0;
  protected static byte iterator=0;

  public static void main(String[] args)
  {
  do {babAge= (int)(Math.random()*120);} while (babAge < 50);
  Display dis = new Display(); //создаём объект Дисплей
  final Shell sh = new Shell (dis); //создаём наследника Дисплея, Оболочку
  sh.setLayout(new GridLayout());
  new Label(sh, SWT.LEFT).setText("Введите свой возраст");
  yourAgeTxt = new Text(sh, SWT.LEFT);
  yourAgeTxt.setText("20");

  Button butInp = new Button (sh,SWT.PUSH);
  butInp.setText("Ввод");
  butInp.addSelectionListener (new SelectionAdapter()
  {
  public void widgetSelected(SelectionEvent e)
  {
  yourAge = Integer.parseInt(yourAgeTxt.getText());
  if ((yourAge < 7) || (yourAge > 40))
  {
  MessageBox mes = new MessageBox (sh);
  mes.setText("Внимание");
  mes.setMessage("Ваш возраст не подходит\nдля такой серьёзной игры :)");
  mes.open();  
  }
  else
  {
  babAgeTxt.setEditable(true);
  butCompare.setEnabled(true);
  }
  }
  });

  new Label(sh, SWT.LEFT).setText("Возраст бабки от 50 до 120 лет");
  new Label(sh, SWT.LEFT).setText("Введите возраст бабки");
  babAgeTxt = new Text(sh, SWT.LEFT);
  babAgeTxt.setText("120");
  babAgeTxt.setEditable(false);
   
  butCompare = new Button (sh,SWT.PUSH);
  butCompare.setText("Угадать");
  butCompare.setEnabled(false);
  butCompare.addSelectionListener (new SelectionAdapter()
  {
  public void widgetSelected(SelectionEvent e)
  {
  iterator++;
  MessageBox mes = new MessageBox (sh);
  mes.setText("Возраст бабки");
  if ((Integer.parseInt(babAgeTxt.getText())) == babAge)
  {
  mes.setText("Ура-а-а-а");
  mes.setMessage("Вы выиграли с "+iterator+
  " попытки.\nБабка старше Вас на "+(babAge-yourAge)+
  " лет.");
  }
  else
  if ((Integer.parseInt(babAgeTxt.getText())) > babAge)
  mes.setMessage("Попытка "+iterator+"\nМладше");
  else
  mes.setMessage("Попытка "+iterator+"\nСтарше");
  mes.open();
  }
  });

  Button butExit = new Button (sh, SWT.PUSH);
  butExit.setText ("Выход");
  butExit.addSelectionListener (new SelectionAdapter()
  {
  public void widgetSelected(SelectionEvent e)
  {
  MessageBox mes = new MessageBox (sh);
  mes.setText("Game Over");
  mes.setMessage("До свидания !");
  mes.open();
  sh.close();
  }
  });

  sh.pack();
  sh.open (); //открываем её
  while (!sh.isDisposed ()) //цикл работает
  //пока оболочка не уничтожена
  {
  if (!dis.readAndDispatch ()) dis.sleep (); //пока дисплей не читает и не
  //передаёт ОС сообщения, он спит
  }
  dis.dispose (); //уничтожаем объект
  }
}

Из данного примера можно подчерпнуть знания о создании обработчика событий (в данном примере от кнопок, у каждой свой обработчик), использование окон сообщений (MessageBox), оператор конкатенации (слияния) текста.
Скелет программы взят из статьи (Простейшее SWT приложение).
Используемые классы:
Button
Label
Text
MessageBox
Integer (для преобразования строки в целое число)

Программа не является эталоном и нуждается в доработке.
При вводе возраста (своего и бабки), при переводе строки в целое число не проверяется является ли строка вообще числом, если ввести последовательность символов программа вылетит с сообщением об ошибке в консоль.

Можете доработать сами или разберём это позже, при Вашем желании.

Категория: Пакет SWT | Добавил: C0demaker (17.04.2009)
Просмотров: 1328 | Рейтинг: 0.0/0
Всего комментариев: 0

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ant1 © 2025