Object-Oriented Programming 10

37
CHAPTER 10 CHAPTER 10 GUI & EVENT HANDLING Mr.Warawut Khangkhan e-Mail: [email protected] Social Media: www.facebook.com/AjWarawut

description

GUI and Event

Transcript of Object-Oriented Programming 10

Page 1: Object-Oriented Programming 10

CHAPTER 10CHAPTER 10

GUI & EVENT

HANDLINGMr.Warawut Khangkhan

e-Mail: [email protected]

Social Media: www.facebook.com/AjWarawut

Page 2: Object-Oriented Programming 10

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

Page 3: Object-Oriented Programming 10

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

Page 4: Object-Oriented Programming 10

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

Page 5: Object-Oriented Programming 10

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

Page 6: Object-Oriented Programming 10

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

Page 7: Object-Oriented Programming 10

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

Page 8: Object-Oriented Programming 10

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�)�����(������������#�������(

Page 9: Object-Oriented Programming 10

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)

Page 10: Object-Oriented Programming 10

Mr.W

ara

wut

Khangkhan

Chapte

r 10 G

UI &

Event H

andlin

gG

UI &

Event H

andlin

g

10

Page 11: Object-Oriented Programming 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

Page 12: Object-Oriented Programming 10

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�����/,��(������������������� #�&

��/( ��(��.#�����/������"������� �"��&#������ ����������(

Page 13: Object-Oriented Programming 10

Mr.W

ara

wut

Khangkhan

Chapte

r 10 G

UI &

Event H

andlin

gG

UI &

Event H

andlin

g

13

Page 14: Object-Oriented Programming 10

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(

Page 15: Object-Oriented Programming 10

Mr.W

ara

wut

Khangkhan

Chapte

r 10 G

UI &

Event H

andlin

gG

UI &

Event H

andlin

g

15

Page 16: Object-Oriented Programming 10

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 ���)��

Page 17: Object-Oriented Programming 10

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

Page 18: Object-Oriented Programming 10

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�)������� ��

Page 19: Object-Oriented Programming 10

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

Page 20: Object-Oriented Programming 10

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 �'� .���'�

Page 21: Object-Oriented Programming 10

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

Page 22: Object-Oriented Programming 10

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

Page 23: Object-Oriented Programming 10

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

Page 24: Object-Oriented Programming 10

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

Page 25: Object-Oriented Programming 10

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

Page 26: Object-Oriented Programming 10

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

Page 27: Object-Oriented Programming 10

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

Page 28: Object-Oriented Programming 10

����������������������������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);

Page 29: Object-Oriented Programming 10

����������������������������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);

Page 30: Object-Oriented Programming 10

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

Page 31: Object-Oriented Programming 10

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( ));

Page 32: Object-Oriented Programming 10

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

Page 33: Object-Oriented Programming 10

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

Page 34: Object-Oriented Programming 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

Page 35: Object-Oriented Programming 10

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

Page 36: Object-Oriented Programming 10

Mr.W

ara

wut K

hangkhan

Chapte

r 10

EVENT HANDLING

10 G

UI &

Event H

andlin

g

36

Page 37: Object-Oriented Programming 10

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( ));