Object-Oriented Programming 10
description
Transcript of Object-Oriented Programming 10
CHAPTER 10CHAPTER 10
GUI & EVENT
HANDLINGMr.Warawut Khangkhan
e-Mail: [email protected]
Social Media: www.facebook.com/AjWarawut
Mr.W
ara
wut K
hangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
GUI
Chapte
r 10 G
UI &
Event H
andlin
g
2
GUIGUI
������������������� ������ ����������������������
����� � Graphic User Interface
(GUI) !"����� ��#$%��� java.awt #�&
javax.swing
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
javax.swing
3
GU
I & E
vent H
andlin
g
GUI CGUI COMPONENTOMPONENT
��'� ������ �������������������(��������)"*���
+,�#�( +���������������- (������� AWT Set
(Abstract Windowing Toolkit) #�&
Swing Set
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
Swing Set
4
Chapte
r 10 G
UI &
Event H
andlin
g
GUI CGUI COMPONENTOMPONENT
��(��.����� GUI /�� 3 ,�&�0� �'�
�Container �'� ��(+$����1�����(��.(����+$����1�'��
�,2�� ��,�&�/�� +��(��-3��43&�,2� Abstract
Class 2
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
Class !"����(��.# �/�� 2 ,�&�0� �'�
� Top Level ��(��.#����������/���,2����#� �� �
Frame #�& Dialog
� Non-Top Level �'� /( ��(��.#����������/���,2����
#� �� � Panel Scroll #�& Pane5
GU
I & E
vent H
andlin
g
GUI CGUI COMPONENTOMPONENT
��(��.����� GUI /�� 3 ,�&�0� �'�
�Simple Component �'� ��(+$����1����/, �� �
Button, Label, RadioButton, List #�& Pane
ComboBox
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
��'� ComboBox �,2����
�Text Component �'� ��(+$����1������)�����(
�� � TextField �,2����
6
GU
I & E
vent H
andlin
g
GUI: FGUI: FRAMERAME
�Frame: ���1(��'���#�����
��,2���(+$����1,�&�0� Top-Level
Container �������������� JFrameJFrame +��
Swing Set
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
����������- (������� Swing Set !"�����(
,�&����������'��� )��)� )���$'*���� #�&,-5(� ��6 ���
����������������� ��#�&+,�#�(����,2� GUI �&����
(����(�� ������ 1 ���(�,2����1,�&���(�
7
GU
I & E
vent H
andlin
g
GUI: FGUI: FRAMERAME Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
JFrame frameName = new JFrame(title);
frameName �,2��'������%�1���,�&�7������ JFrame
title �,2�)�����(������������#�������(
8
GU
I & E
vent H
andlin
g
title �,2�)�����(������������#�������(
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g��������������� �������������������������
setDefaultCloseOperation( )• DO_NOTHING_ON_CLOSE /( ��������&/�
• HIDE_ON_CLOSE �,2���! ������� �� +��
�������� ����/,�������� #� ����� ���&/( ��(��.#���
/������
9
Chapte
r 10 G
UI &
Event H
andlin
g
• DISPOSE_ON_CLOSE �,2���! ��#�&������
����� �� +���������� ����/,��������#�&�'����$���
� ��6 �����������&
• EXIT_ON_CLOSE �,2���,��+,�#�(+�����
�8�1��� System.exit(0)
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
gG
UI &
Event H
andlin
g
10
GUI:GUI: PPANELANEL
�Panel: � �������#�����
��,2���(+$����1,�&�0� Top-Level
Container �������������� JPanelJPanel �,2�
Container
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
��(+$����1����������� Container �� �
Frame �,2����
11
Chapte
r 10 G
UI &
Event H
andlin
g
GUI:GUI: PPANELANEL
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
JPanel pName = new JPanel( );
or
JPanel pName = new JPanel(manager);
pName �,2��'������%�1���,�&�7������ JPanel
12
GU
I & E
vent H
andlin
g
pName �,2��'������%�1���,�&�7������ JPanel
manager �,2���,#)�� LayoutManager ������������
��������(+$����1� Panel
+��,�� Default LayoutManger �&�,2�# Flow Layout
�'� �,2�����������(+$����1�����/,��(������������������� #�&
��/( ��(��.#�����/������"������� �"��&#������ ����������(
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
gG
UI &
Event H
andlin
g
13
GUI:GUI: BBUTTONUTTON
�Button �,2�,-5(����������/,��������������
JButtonJButton
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
JButton buttonName = new JButton(text);
or
14
GU
I & E
vent H
andlin
g
or
JButton buttonName = new Jbutton(text,
icon);
buttonName �,2��'������%�1���,�&�7������
JButtontext �,2�)�����(������������#����,-5(
icon �,2���,������������#����,-5(
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
gG
UI &
Event H
andlin
g
15
GUI:GUI: LLABELABEL
�Label �,2�� ��������#���)�����(#���������� !���
�,2���(+$����1�������������� JLabelJLabel
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
JLabel lname = new Jlabel(text, icon,
Alignment);
Example: Ch10_04
16
GU
I & E
vent H
andlin
g
Alignment);
lName �,2��'������%�1���,�&�7������ JLabel
text �,2�)�����(������������#���� Label
icon �,2���,������������#���� Label
Alignment �,2����#�� �����������(#������ Label- SwingConstans.LEFT ���!���
- SwingConstants.CENTER "�����
- SwingConstants.RIGHT ���)��
GUI:GUI: TTEXTEXTFFIELDIELD
�TextField �,2���(+$����1����������)�����(��
����������������������� JTextFieldJTextField
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
JTextField textName =
new JTextField(text, Length);
17
GU
I & E
vent H
andlin
g
new JTextField(text, Length);
textName�,2��'������%�1���,�&�7������ JTextField
text �,2�)�����(������������#���� TextField
Length �,2������������4��&#����� TextField
GUI:GUI: PPASSWORDASSWORDFFIELDIELD
�PasswordField �,2���(+$����1����������
����� �� +��/( #���� �)��(����������������
JPasswordFieldJPasswordField
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
JPasswordField pw =
Example: Ch10_05
18
GU
I & E
vent H
andlin
g
JPasswordField pw =
new JPasswordField(text, Length);
textName�,2��'������%�1���,�&�7������
JPasswordFieldtext �,2�)�����(������������#����
PasswordField
Length �,2������������4�)������� ��
GUI:GUI: RRADIOADIOBBUTTONUTTON
�RadioButton �,2���(+$����1�������������
�����'������(��.��'�/���$�����"�������'� !"�������������
JRadioButtonJRadioButton #�&�������
ButtonGroupButtonGroup ��������- (�����'�� ��6 ���
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
ButtonGroupButtonGroup ��������- (�����'�� ��6 ���
��� ���- (�������
19
GU
I & E
vent H
andlin
g
GUI:GUI: RRADIOADIOBBUTTONUTTON
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
JRadioButton radioName =
new JRadioButton(text, icon,
boolValue);
radioName�,2��'������%�1���,�&�7������
20
GU
I & E
vent H
andlin
g
radioName�,2��'������%�1���,�&�7������
JRadioButtontext �,2�)�����(������������#���� RadioButton
icon �,2�/����������������#���� RadioButton
boolValue �,2��.����31��'�
.��������,2� true �'� .���'�
GUI:GUI: RRADIOADIOBBUTTONUTTON
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
public ButtonGroup( );
(��(9�� add( ) #�& remove( ) ���������$��(��'�������'�
�� ButtonGroup
21
GU
I & E
vent H
andlin
g
GUI:GUI: LLISTIST
�List �,2���(+$����1����������������)��(�������(��.
��'��������)"*��� �$'����'������)��(�����������/�� !"��
����������� JListJList #�&�������
JScrollPaneJScrollPane ����������)��(���� List
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
JScrollPaneJScrollPane ����������)��(���� List
22
GU
I & E
vent H
andlin
g
GUI:GUI: LLISTIST
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
JList listName = new JList( );
or
JList listName = new JList(dataModel);
or
JList listName = new JList(items);
23
GU
I & E
vent H
andlin
g
JList listName = new JList(items);
listName �,2��'������%�1���,�&�7������ JList
dataModel �,2�������������'������/�� 1 ����� ��'�
(�� � 1 �����
items �,2�)��(��,�&�0�)������� Object ��'�
Vector
GUI:GUI: SSCROLLCROLLPPANEANE
�ScrollPane �,2���(+$����1�����������
Scroll bar �������������� JScrollPaneJScrollPane
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
JScrollPane panelist =
new JScrollPane(listName);
Example: Ch10_06
24
GU
I & E
vent H
andlin
g
new JScrollPane(listName);
panelist �,2��'������%�1���,�&�7������
JScrollPanelistName �,2������)��(��,�&�0� List
GUI:GUI: CCHECKHECKBBOXOX
�CheckBox �,2���(+$����1����������������'����
��(��.��'�/��(�� ���"�������'� ��������������
JCheckBoxJCheckBox (��.��&�,2� true ��'� false
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
25
GU
I & E
vent H
andlin
g
JCheckBox checkName =
new JCheckBox(text, icon);
checkName �,2��'������%�1���,�&�7������
JCheckBoxtext �,2�)�����(������������#���� CheckBoxicon �,2�/����������������#���� CheckBox
GUI:GUI: CCOMBOOMBOBBOXOX
�ComboBox �,2���(+$����1������#��������
)��(�� !"��#���/���$��� 1 ����� #�&��(��.��'�)��(��/��
�$��� 1 ������� ���*� !"�������������
JComboBoxJComboBox
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
gExample: Ch10_07
JComboBoxJComboBox
26
GU
I & E
vent H
andlin
g
JComboBox comboName =
new JComboBox(items);
comboName �,2��'������%�1���,�&�7������
JComboBoxitems �,2������)��(��,�&�0� Object ��'�
Vector
GUI:GUI: MMENUENU
�Menu �,2����'���('���������������������'������������ ��6
������� !"��.������)"*����(����1 ����*��"�������(��
���� ��6 #����$��(�)��/,���(����1
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
27
GU
I & E
vent H
andlin
g
����������������������������MMENUENU
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
1. ������(����1������ JMenuBar
JMenuBar menubar =
new JMenuBar( );
2. ������(�������� JMenu
28
GU
I & E
vent H
andlin
g
2. ������(�������� JMenu
JMenu menuName =
new JMenu(itemName);
3. ������(��� �������� JMenuItem
JMenuItem menuItemName =
new JMenuItem(subItemName);
����������������������������MMENUENU
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
4. �$��(�(��� �����(�����������
menuName.add(menuItemName);
5. �$��(�(���)�����(����1
Example: Ch10_08
29
GU
I & E
vent H
andlin
g
5. �$��(�(���)�����(����1
menubar.add(menuName);
6. ������(����1���� Frame +������(9��
setJMenuBar
frameName.setJMenuBar(menubar);
Mr.W
ara
wut K
hangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
LAYOUT MANAGER
Chapte
r 10 G
UI &
Event H
andlin
g
30
LLAYOUTAYOUT MMANAGERANAGER
��(��."� ��,#����������������������(+$����1�
Panel !"�� Default �&�,2�#
FlowLayout !"���,2���������#�����/,
��(������������������� ��/( ��(��.#�����/����
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
��(������������������� ��/( ��(��.#�����/����
��"������� �&#������ ����������( #�&��(��.�&-
Layout ���������/��+������(9��
setLayout( )
31
GU
I & E
vent H
andlin
g
JPanel panel = new JPanel( );
panel.setLayout(new FlowLayout( ));
FLOWLAYOUTMANAGER
��,2�������������(+$����1��(��������#�� �)��
��(+$����1��!���/,)��#�&������ ��
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
32
GU
I & E
vent H
andlin
g
Example: Ch10_09
BORDERLAYOUT
MANAGER
��,2�������������(+$����1 +��# �$'*�����,2� 5 � �� �'�
North, South, East, West #�&
Center #�&��#� �&� ���&���/�� 1 ��(+$����1�� ���*�
1
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
����3������������������(+$����1(�� � 1
��(+$����1 ��(��.# �$'*������� ����6 ���,2� 5 � ��
/,��'���6 /��
33
Chapte
r 10 G
UI &
Event H
andlin
g
Example: Ch10_10
GRIDLAYOUTMANAGER
��,2�������������(+$����1 +��# �$'*�����,2� Grid ��(
������#.�#�&����(�1�������� #�&��#� �& Grid �&���
/�� 1 ��(+$����1 +����������/,��(����� !���/,)�� #�&
��� ��
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
��� ��
34
GU
I & E
vent H
andlin
g
Example: Ch10_11
GRIDBAGLAYOUT
MANAGER
��,2�������������(+$����1 +��# �$'*�����,2�� ����(
������#.�#�&����(�1����� GridLayout
Manager #� (�)������'���- �� � �'� ���������� 1
��(+$����1 ��(��.���$'*����(�� � 1 #.� 1 ����(�1/��
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
g
��(+$����1 ��(��.���$'*����(�� � 1 #.� 1 ����(�1/��
35
Chapte
r 10 G
UI &
Event H
andlin
g
Example: Ch10_12
Mr.W
ara
wut K
hangkhan
Chapte
r 10
EVENT HANDLING
10 G
UI &
Event H
andlin
g
36
EEVENTVENT HHANDLINGANDLING
��,2�)�*�����������������-��31����&������(+$����1
��,2��������)������%�1����,2� Event Listener
��� � ���������������-��31����,2�,-5(
CloseButton
Mr.W
ara
wut
Khangkhan
Chapte
r 10 G
UI &
Event H
andlin
gExample: Ch10_13, Ch10_14
�� � ���������������-��31����,2�,-5(
CloseButton +�����������%������
ButtonListener �$'���������%�1���� �����
��������,2� Event Listener #�&���/,������
,-5( CloseButton +��(���,#
37
GU
I & E
vent H
andlin
g
buttonName.addActionListener(new ButtonListener( ));