- •Основы Java
- •GUI в Java. Панели инструментов
- •GUI в Java. Панели инструментов
- •GUI в Java. Панели инструментов. Пример. Лекция 7
- •GUI в Java. Диалоговые (модальные) окна
- •GUI в Java. Диалоговое окно JOptionPane
- •GUI в Java. Диалоговое окно JOptionPane
- •GUI в Java. Параметры JoptionPane
- •GUI в Java. События мыши, клавиатуры, окна
- •GUI в Java. Пример «слушания» событий мыши и клавиатуры
- •GUI в Java. Пример «слушания» событий мыши и клавиатуры
- •Основы Java
- •Многопоточность. Понятия и определения
- •Многопоточность. Понятия и определения
- •Многопоточность в Java.
- •Многопоточность в Java. Отличие способов «Runnable» от «Thread» Лекция 7
- •Многопоточность в Java. Отличие способов «Runnable» от «Thread» Лекция 7
- •Многопоточность в Java. Состояния потока
- •Многопоточность в Java. Состояния потока
- •Многопоточность в Java. Действия с потоками
- •Многопоточность в Java. Методы класса Thread
- •Многопоточность в Java. Методы класса Thread
- •Многопоточность в Java. Гонки. Синхронизация. Блокировки
- •Многопоточность в Java. Гонки. Синхронизация. Блокировки
- •Многопоточность в Java. Синхронизация. Блокировки
- •Многопоточность в Java. Синхронизация. Передача событий
- •Многопоточность в Java. Пример программы
- •Многопоточность в Java. Пример программы. Классы Лекция 7
- •Многопоточность в Java. Пример программы. Класс Ball
- •Многопоточность в Java. Пример программы. Класс BallComponent Лекция 7
- •Многопоточность в Java. Пример программы. Класс BallRunnable Лекция 7
- •Многопоточность в Java. Пример программы. Класс BallRunnable
- •Многопоточность в Java. Пример программы. Класс ThreadTest Лекция 7
- •Многопоточность в Java. Пример программы. Класс ThreadTest
- •Многопоточность в Java. Пример программы. Класс ThreadTest Лекция 7
- •Многопоточность в Java. Пример программы
- •Многопоточность в Java. Пример программы 2
- •Многопоточность в Java. Пример программы 2
- •Многопоточность в Java. Пример программы 2
- •Многопоточность в Java. Пример программы 2
Основы Java |
МИЭТ, 2016 |
Лекция 7.
1.Графический интерфейс в Java (окончание)
2.Многопоточность в Java
GUI в Java. Панели инструментов |
Лекция 7 |
Для создания панелей инструментов используется класс JtoolBar
GUI в Java. Панели инструментов |
Лекция 7 |
Особенностью панелей инструментов является то, что они могут размещаться За границами окна приложения
GUI в Java. Панели инструментов. Пример. Лекция 7
public class ToolBarTest extends JToolBar implements ActionListener { public JButton BTF; public JButton BTS; public JButton BTT;
public ToolBarTest(String Name) { super();
this.setName(Name); this.setSize(150, 40);
this.setComponentOrientation(getComponentOrientation()); this.setOrientation(HORIZONTAL); this.setMinimumSize(getSize());
this.makeContent();
this.setCursor(new Cursor(Cursor.HAND_CURSOR));
}
private void makeContent() {
BTF = new JButton("");
BTF.setName("BTF");
BTF.addActionListener(this);
BTF.setToolTipText("First");
ImageIcon img = new ImageIcon("src/first.jpg");
System.out.println(img.getIconWidth());
BTF.setIcon(img);
this.add(BTF);
//Добавляем остальные кнопки
}
GUI в Java. Диалоговые (модальные) окна |
Лекция 7 |
Диалоговые (модальные) окна — блокируют исполнение программы, пока из них не будет осуществлен выход.
Классы диалоговых окон в Java
JOptionPane — универсальный класс для создания диалоговых окон
JFileChooser — класс для создания диалоговых окно выбора файлов
JСolorChooser — класс для выбора цвета
GUI в Java. Диалоговое окно JOptionPane |
Лекция 7 |
showMessageDialog() — метод для показа простого окна — предупреждения
JOptionPane.showMessageDialog(frame,
"Eggs are not supposed to be green.",
"Inane error",
JOptionPane.ERROR_MESSAGE);
showOptionsDialog() — метод для показа окна с возможностью выбора вариантов
Object[] options = {"Yes, please", "No, thanks", "No eggs, no ham!"}; int n = JOptionPane.showOptionDialog(frame,
"Would you like some green eggs to go with that ham?", "A Silly Question",
JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null,//можно задать свою иконку options,
options[2]);
GUI в Java. Диалоговое окно JOptionPane |
Лекция 7 |
showInputDialog() — метод для показа окна с возвращением значения, выбранного или введенного пользователем.
Object[] possibilities = {"ham", "spam", "yam"};
String s = (String)JOptionPane.showInputDialog( this,
"Complete the sentence: \"Green eggs and...\"", "Customized Dialog", JOptionPane.PLAIN_MESSAGE,
null,//можно задать свою иконку possibilities,
"ham");
Для более сложных случаев модальных окон необходимо воспользоваться классом JDialog, создавая от него свои диалоговые окна
GUI в Java. Параметры JoptionPane |
Лекция 7 |
messageType - тип иконки окна :
INFORMATION_MESSAGE - для вывода информации со значком соответствующего вида; WARNING_MESSAGE - для вывода предупреждающей информации со значком соответствующего вида; QUESTION_MESSAGE - для вывода вопросительной информации со значком соответствующего вида; ERROR_MESSAGE - для вывода информации об ошибке со значком соответствующего вида; PLAIN_MESSAGE - для вывода информации без значка.
optionType - опция определения какие кнопки отображать:
DEFAULT_OPTION
YES_NO_OPTION
YES_NO_CANCEL_OPTION
OK_CANCEL_OPTION
Для задания своей иконки, вместо null помещаем:
new ImageIcon("img/myico.png");
GUI в Java. События мыши, клавиатуры, окна |
Лекция 7 |
|
|
|
|
KeyListener — Слушатель событий |
keyPressed(KeyEvent e) |
|
нажатия клавиши |
keyRelesed(KeyEvent e) |
|
|
|
|
|
keyTyped(KeyEvent e) |
|
|
|
|
MouseListener — слушатель событий |
mouseClicked(MouseEvent e) |
|
кликов мыши |
mousePressed(MouseEvent e) |
|
|
|
|
|
mouseReleased(MouseEvent e) |
|
|
mouseEntered(MouseEvent e) |
|
|
mouseExited(MouseEvent e) |
|
|
|
|
MouseMotionListener — слушатель |
mouseDragged(MouseEvent e) |
|
событий перемещения мыши |
mouseMoved(MouseEvent e) |
|
|
|
|
|
|
|
WindowListener — слушатель событий |
windowOpened(WindowEvent e) |
|
окна |
windowClosing(WindowEvent e) |
|
|
|
|
|
windowClosed(WindowEvent e) |
|
|
windowIconified(WindowEvent e) |
|
|
windowDeiconified(WindowEvent e) |
|
|
windowActivated(WindowEvent e) |
|
|
|
|
GUI в Java. Пример «слушания» событий мыши и клавиатуры |
Лекция 7 |
public class MainDesktopPane extends JDesktopPane implements KeyListener, |
|
MouseListener{ |
|
MainDesktopPane() { super(); addKeyListener(this); addMouseListener(this); this.getActionMap();
this.getInputMap().put(KeyStroke.getKeyStroke((char) KeyEvent.KEY_PRESSED), "");
}
@Override
public void mouseClicked(MouseEvent e) { System.out.println("MainDesktopPane > "+e.getX()+" "+e.getY()+" " +e.getXOnScreen()+" "+e.getYOnScreen());
}
@Override
public void keyPressed(KeyEvent arg0) { System.out.println("MainDesktopPane keyPressed > " +arg0.getKeyCode()+" "+arg0.getKeyText(arg0.getKeyCode()));
}
@Override
public void keyReleased(KeyEvent arg0) { System.out.println("MainDesktopPane keyReleased > " +arg0.getKeyCode()+" "+arg0.getKeyText(arg0.getKeyCode()));
}