1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Lập trình GUI với Swing

9 347 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 631,56 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Container contentPane = getContentPane; contentPane.setLayoutnew FlowLayout; 14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đ ng Công ngh 14 BorderLayout Container contentPane = getCont

Trang 1

L p trình Java II

Ch ng I

L p trình GUI v i Swing

Biên so n: ThS Nguy n V n Lành

14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đng Công ngh 2

M c tiêu

̈ Hoàn thành ch ng n y, sinh viên ph i đ t

đ c nh ng đ i m sau:

̈ Hi u c u trúc và n m v ng k n ng l p trình t ch c

1 giao di n ng i dùng đ h a trong Java

̈ Bi t cách l p trình tùy bi n các đ i t ng GUI trong

th vi n Swing

̈ Hi u c ch x lý s ki n t ng tác ng i dùng và

n m v ng k n ng l p trình phát tri n các đ i t ng

x lý s ki n.

̈ K n ng t tìm hi u và s d ng các GUI component

có s n trong th vi n

đ

N i dung

̈ Gi i thi u chung v AWT & Swing

̈ C u trúc chung c a các giao di n GUI

̈ Các l p v t ch a & trình qu n lý layout

̈ Các thành ph n GUI c b n

̈ C ch x lý s ki n t ng tác ng i

dùng

̈ Các l p listener c b n & cách tùy bi n

đ

I Gi i thi u chung v AWT & Swing

̈ AWT: Abstract Windows Toolkit

̈ Th vi n API cung c p các đ i t ng GUI

̈ T o liên k t giao di n

gi a ng d ng Java và OS

̈ Heavy-weight component

̈ Package java.awt

Trang 2

14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đ ng Công ngh 5

I Gi i thi u chung v AWT & Swing

̈ T o giao di n nh t quán đ c l p v i môi tr ng

(cross-platform GUI)

̈ Light-weight component v i nhi u đ c đi m

nâng c p.

̈ pluggable look and feel

̈ Có kh n ng tùy bi n t i th i đi m runtime

̈ Không s d ng tr n l n AWT và Swing GUI

component trên cùng 1 giao di n.

̈ Package javax.swing

14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đ ng Công ngh 6

I Gi i thi u chung v AWT & Swing

̈ Thi t k theo ý t ng mô hình MVC (Model-View- Controller) và mô hình thành

ph n (component model)

̈ T ng tác gi a ng i dùng và giao di n GUI đi u khi n b i controller

̈ Standard Widget Toolkit (SWT) là s n ph m công ngh t ng ng c a IBM – tích h p trong Eclipse IDE

I Gi i thi u chung v AWT & Swing

̈ C u trúc giao di n GUI : t ch c các đ i

t ng GUI trên 1 v t ch a(container) qu n

lý b i trình qu n lý b trí (layout manager)

I Gi i thi u chung v AWT & Swing

̈ Các thành ph n Swing k th a t l p c s JComponent

Trang 3

14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đ ng Công ngh 9

II Các l p v t ch a

̈ Giao di n GUI đ c trình bày trên 1 v t

ch a đ c t ch c phân c p

̈ Top level container: JFrame, JDialog, Japplet

̈ Intermediate container :JPanel,

JScrollPane, JTabbedPane

̈ Container c p cao qu n lý gián ti p các

container trung gian cho phép t ch c

giao di n theo chi u sâu Z-oderring

14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đ ng Công ngh 10

II Các l p v t ch a

̈ JFrame là 1 c a s có khung, có tiêu đ

và các nút đi u khi n dùng hi n th giao

di n ng d ng Java đ c l p

̈ JDialog:

̈ H p tho i có vi n khung và tiêu đ , ph i có 1 frame ho c dialog làm owner, t đ ng thu

nh ho c hi n th theo owner

̈ Modal ho c modeless

̈ JApplet : t o giao di n GUI cho ng d ng nhúng

đ ng Công ngh

II Các l p v t ch a

̈ Các l p container c p cao:

̈ Qu n lý các đ i t ng qua trung gian rootPane và

contentPane

̈ S d ng Content Pane là v t ch a tr c ti p các đ i

t ng GUI khác.

̈ Các container trung gian

̈ S d ng trình qu n lý layout manager đ b trí và

qu n lý các đ i t ng trên GUI khi có s thay đ i

ho c di chuy n container

đ ng Công ngh

II Trình qu n lý layout

̈ M i v t ch a s d ng layout manager đ

qu n lý v trí và kích th c các thành

ph n GUI b trí trên v t ch a

̈ 5 l p layout manager th ng dùng:

BorderLayout, BoxLayout, FlowLayout, GridBagLayout, and GridLayout.

̈ Khi b trí 1 đ i t ng GUI trên container

ph i chú ý lo i layout đang s d ng

Trang 4

14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đ ng Công ngh 13

II Trình qu n lý layout

̈ Content-pane c a các v t ch a đ c m c đ nh

s d ng 1 lo i layout

̈ JFrame, JDialog, JApplet: BorderLayout

̈ JPanel: FlowLayout

̈ Thi t l p layout trên 1 container

̈ setLayout(LayoutManager l)

̈ setLayout(null): t qu n lý layout: đ nh v tuy t đ i

̈ Implements LayoutManager đ qu n lý layout cho

các giao di n GUI tùy ý.

Container contentPane = getContentPane();

contentPane.setLayout(new FlowLayout());

14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đ ng Công ngh 14

BorderLayout

Container contentPane = getContentPane();

contentPane.add(new JButton("Button 1 (NORTH)"), BorderLayout.NORTH); contentPane.add(new JButton("2 (CENTER)"), BorderLayout.CENTER); contentPane.add(new JButton("Button 3 (WEST)"), BorderLayout.WEST); contentPane.add(new JButton("Long-Named Button 4 (SOUTH)"), BorderLayout.SOUTH);

contentPane.add(new JButton("Button 5 (EAST)"), BorderLayout.EAST);

BoxLayout

̈ B trí top to bottom|left to right

̈ Tôn tr ng kích th c t i đa và

X/Y alignment.

JPanel buttonPane = new JPanel();

buttonPane.setLayout(new

BoxLayout(buttonPane,

BoxLayout.X_AXIS));

buttonPane.setBorder(BorderFactory.createEm

ptyBorder(0, 10, 10, 10));

buttonPane.add(Box.createHorizontalGlue());

buttonPane.add(cancelButton);

buttonPane.add(Box.createRigidArea(new

S d ng

Box.Filler(minSize, prefSize, maxSize));

đ đi n đ y kho ng cách gi a các đ i

t ng

Boxlayout

̈ BoxLayout chú ý các yêu c u minimum, preferred, and maximum size c a các component

comp.setMinimumSize(new Dimension(50, 25));

comp.setPreferredSize(new Dimension(50, 25));

comp.setMaximumSize(new Dimension(200,200));

Trang 5

14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đ ng Công ngh 17

FlowLayout

public FlowLayout()

public FlowLayout(int alignment)

public FlowLayout(int alignment,int horizontalGap, int verticalGap)

+ i s nh n giá tr FlowLayout.LEFT,

FlowLayout.CENTER, or FlowLayout.RIGHT

+ horizontalGap and verticalGap ch ra kho ng cách pixels

gi a các component.

14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đ ng Công ngh 18

GridLayout

public GridLayout(int rows, int columns) public GridLayout(int rows, int columns, int horizGap, int vertGap) – ph i có ít nh t colúmn ho c rows khác 0

đ ng Công ngh

GridBagLayout

̈ B trí component tr i trên nhi u hàng và c t v i

kích th c khác nhau

̈ Thi t l p 1 m ng l i ô liên

k t v i container và b trí

các component trên 1 ho c

nhi u ô

đ ng Công ngh

LayoutManager interface

̈ public void layoutContainer(Container parent)

̈parent là container c n qu n lý

̈Hàm setBounds() đ c g i cho m i component

đ c đ a vào parent, v trí c a m i component nên đ c xác đ nh theo công th c t ng đ i so

v i kích th c c a parent

̈ Là ph ng án qu n lý layout t t v i các container ch a ít component

Trang 6

14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đ ng Công ngh 21

III Các thành ph n GUI c b n

̈ JComponent

̈ JComponent là l p c s abstract c a t t c các

Swing components (có tên b t đ u ch J – ngo i tr

top-container)

̈ K th a t Component và Container

̈ óng gói h u h t các đ c đi m và thao tác c b n

c a 1 thành ph n GUI

̈ Setting borders and boundering

̈ Request focus and keystroke handling

̈ Aligning, scrolling, resizing behaviour

̈ Tooltip, listener, double buffering

14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đ ng Công ngh 22

JComponent methods

Trang 7

14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đ ng Công ngh 25

JComponent methods - painting

14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đ ng Công ngh 26

JComponent methods - Containment

đ ng Công ngh

JComponent methods - Layout

đ ng Công ngh

JComponent methods - Layout

Trang 8

14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đ ng Công ngh 29

JComponent methods - Absolute Size and Position

14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đ ng Công ngh 30

III Các thành ph n GUI c b n

̈ JTextField

̈ JLabel

̈ JPasswordField

̈ JTextArea

̈ JComboBox

̈ JButton

̈ JCheckBox

̈ JRadioButton

̈ Hàm d ng, các hàm getXXX, gán Listener

IV C ch x lý s ki n

̈ T ng tác GUI – user đ c bi u di n và x lý

trên c s mô hình y thác (delegation model)

̈ Event: s ki n t ng tác ( kích chu t)

̈ Event source: n i phát sinh s ki n (button)

̈ Event Listener: đ i t ng đ c y quy n x lý s

ki n.

̈ Khi m t s ki n di n ra, listener- là đ i t ng

đ c y thác đ x lý - s tri u g i 1 hàm x lý

s ki n t ng ng

IV.2 Các lo i s ki n

̈ Event c p th p

̈ Event

̈ AWTEvent

̈ KeyEvent

̈ MouseEvent

̈ WindowEvent

̈ Event c p cao: semantic event

̈ FocusEvent

̈ ActionEvent

̈ public Object getSource()

̈ public String getActionCommand()

Trang 9

14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đ ng Công ngh 33

IV.3 Các l p listener

̈ T ng ng v i m i lo i event, listener t ng

ng đ c đ ng ký đ x lý event

JButton b= new JButton(“OK”);

b.addActionListener(new OKListener());

̈ Các l p Listener đ c phát tri n theo các

khuôn m u interface đã đ nh ngh a

̈ ActionListener

̈ KeyListener

̈ MouseListener

̈ FocusListener …

̈ Ng i l p trình vi t mã cho các hàm x lý.

14/02/08 Bài gi ng dành cho sinh viên Tr ng Cao đ ng Công ngh 34

Tóm t t

̈ C u trúc và cách t ch c giao di n ng

d ng GUI

̈ S d ng các l p layout manager

̈ S d ng và tùy bi n các GUI component

̈ T ch c x lý s ki n

đ ng Công ngh

Tài li u tham kh o

̈ Ch ng 7 – Core Java -Vol I

̈ Swing tutorial – link trên WEBCT

̈ Các ví d và bài t p – link trên WEBCT

̈ Bài t p th c hành

̈ Vi t ng d ng hi n th dòng ch “Welcome to

Swing” chính gi a c a s B trí 2 button

cu i màn hình nút T ng và Gi m – khi ng i

s d ng click vào thì c ch hi n th t ng

ho c gi m t ng ng.

Ngày đăng: 20/03/2015, 18:53

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w