1. Trang chủ
  2. » Mẫu Slide

Do Hoa Va Su Ly Su Kien Trong Java

38 7 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 38
Dung lượng 700,5 KB

Nội dung

Đối tượng JFrame sử dụng content pane để chứa các thành phần trong frame.. 11.3 Layout Managers 11.3 Layout Managers[r]

(1)

LẬP TRÌNH JAVA

LẬP TRÌNH JAVA

Bài 11

(2)

Nội dung Nội dung

 11.1 Sơ đồ phân cấp lớp GUI

 11.2 Frames

 11.3 Layout Managers

 11.4 Drawing

(3)

11.1 Sơ đồ phân cấp lớp GUI 11.1 Sơ đồ phân cấp lớp GUI

 Các thành phần GUI

 Các đối tượng GUI: button, label, text field,

check box, radio button, combo box, …

 Mỗi loại đối tượng xác định

lớp: JButton, JLabel, JTextField, JCheckBox, JRadioButton, JComboBox, …

 Mỗi lớp thành phần GUI có số

(4)

11.1 Sơ đồ phân cấp lớp GUI 11.1 Sơ đồ phân cấp lớp GUI

 Swing vs AWT

 AWT: Abstract Windows Toolkit:

 Java

 Được gắn với platform xác định

 Thích hợp với việc phát triển ứng dụng GUI

đơn giản

 Swing components:

 Java

(5)

11.1 Sơ đồ phân cấp lớp GUI 11.1 Sơ đồ phân cấp lớp GUI

 Sơ đồ phần cấp lớp GUI (Swing)

Dimension Font

FontMetrics

Component Graphics

Object Color

Container

Panel Applet

Frame Dialog Window JComponent JApplet JFrame JDialog Swing Components Heavyweight Classes in the java.awt

package

LayoutManager

(6)

11.1 Sơ đồ phân cấp lớp GUI 11.1 Sơ đồ phân cấp lớp GUI

(7)

11.1 Sơ đồ phân cấp lớp GUI 11.1 Sơ đồ phân cấp lớp GUI

 Các lớp GUI: nhóm container

 Được dùng để chứa thành phần khác.

 Các lớp container (Swing):

(8)

11.1 Sơ đồ phân cấp lớp GUI 11.1 Sơ đồ phân cấp lớp GUI

 Các lớp GUI: nhóm component

 Gồm subclass lớp JComponent  Các lớp GUI component (Swing):

 JButton  JLabel

 JTextField  JTextArea  JComboBox  JList

 JRadioButton  JMenu

(9)

11.1 Sơ đồ phân cấp lớp GUI 11.1 Sơ đồ phân cấp lớp GUI

 Các lớp GUI: nhóm helper

 Được component container dùng để

vẽ đặt đối tượng.

 Các lớp helper (Swing):

 Graphics  Color

 Font

 FontMetrics  Dimension

(10)

11.1 Sơ đồ phân cấp lớp GUI 11.1 Sơ đồ phân cấp lớp GUI

 Các thành phần giao diện người sử dụng

Frame Pull-down Menus

(11)

Nội dung Nội dung

 11.1 Sơ đồ phân cấp lớp GUI

 11.2 Frames

 11.3 Layout Managers

 11.4 Drawing

(12)

11.2 Frames 11.2 Frames

 Frame cửa sổ không chứa

cửa sổ khác

 Frame tảng để chứa thành

phần GUI khác ứng dụng Java GUI.

 Trong chương trình Swing GUI, sử

(13)

11.2 Frames 11.2 Frames

import javax.swing.*; public class MyFrame {

public static void main(String[] args) {

JFrame frame = new JFrame("Test Frame"); frame.setSize(400, 300);

frame.setVisible(true);

frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);

(14)

11.2 Frames 11.2 Frames

 Canh Frame

 Mặc định, frame hiển thị góc

bên trái hình

 Để hiển thị frame vị trí xác định, sử

dụng phương thức setLocation(x, y) lớp JFrame

 Phương thức đặt góc trái frame

(15)

11.2 Frames 11.2 Frames

 Canh Frame

screenHeight

screenWidth

getHeight()

getWidth() (x, y)

Frame Screen

(16)

11.2 Frames 11.2 Frames

 Đưa thành phần vào Frame

// Dua nut bam vao frame

frame.getContentPane().add(new JButton("OK"));

 Content pane lớp Container Câu lệnh

ở tương đương với câu lệnh sau:

Container container = frame.getContentPane(); container.add(new JButton("OK"));

 Content pane sinh đối tượng JFrame

(17)

Nội dung Nội dung

 11.1 Sơ đồ phân cấp lớp GUI

 11.2 Frames

 11.3 Layout Managers

 11.4 Drawing

(18)

11.3 Layout Managers 11.3 Layout Managers

 Thiết lập Layout Manager

 Các layout manager Java cung cấp

chế để tự động ánh xạ thành phần GUI của bạn tất hệ thống cửa sổ.

 Các thành phần GUI đặt

(19)

11.3 Layout Managers 11.3 Layout Managers

 Thiết lập Layout Manager

LayoutManager layMan = new XLayout(); container.setLayout(layMan);

XLayout:

 FlowLayout  GridLayout  BorderLayout  CardLayout

(20)

11.3 Layout Managers 11.3 Layout Managers

 FlowLayout Manager

 Các thành phần xếp

(21)

11.3 Layout Managers 11.3 Layout Managers

 GridLayout Manager

 GridLayout manager xếp thành

phần lưới (ma trận) với số hàng và số cột xác định constructor Các thành phần đặt lưới từ

(22)

11.3 Layout Managers 11.3 Layout Managers

 BorderLayout Manager

 BorderLayout manager chia container

(23)

11.3 Layout Managers 11.3 Layout Managers

 BorderLayout Manager

Các thành phần đưa vào BorderLayout

phương thức add:

add(Component, constraint)

constraint:

(24)

11.3 Layout Managers 11.3 Layout Managers

 Sử dụng Panel làm Container

 Các panel đóng vai trị container nhỏ để

nhóm thành phần GUI

 Bạn nên đặt thành phần GUI panel

đặt panel frame, đặt panel panel

JPanel p = new JPanel(); p.add(new JButton("OK");

(25)

11.3 Layout Managers 11.3 Layout Managers

 Sử dụng Panel làm Container

 Chương trình tạo giao diện cho lị vi sóng, sử

dụng panel để tổ chức thành phần

A button

A textfield 12 buttons

(26)

Nội dung Nội dung

 11.1 Sơ đồ phân cấp lớp GUI

 11.2 Frames

 11.3 Layout Managers

 11.4 Drawing

(27)

11.4 Drawing 11.4 Drawing

 JPanel cịn sử dụng để vẽ đồ họa,

văn cho phép tương tác với người sử dụng

 Để vẽ panel:

 Tạo lớp subclass JPanel

 Chồng phương thức paintComponent

 Sau hiển thị chuỗi ký tự, vẽ khối

(28)

11.4 Drawing 11.4 Drawing

public class DrawMessage extends JPanel { /** Main method */

public static void main(String[] args) {

JFrame frame = new JFrame("DrawMessage");

frame.getContentPane().add(new DrawMessage());

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 200);

frame.setVisible(true); }

/** Paint the message */

public void paintComponent(Graphics g) { super.paintComponent(g);

(29)

11.4 Drawing 11.4 Drawing

 Lớp Graphics lớp trừu tượng để hiển thị hình vẽ

và ảnh hình platform khác

 Lớp Graphics gói gọn chi tiết platform cho phép

bạn vẽ thứ theo cách giống không liên quan đến platform cụ thể

 Lời gọi super.paintComponent(g) cần thiết để

(30)

Nội dung Nội dung

 11.1 Sơ đồ phân cấp lớp GUI

 11.2 Frames

 11.3 Layout Managers

 11.4 Drawing

(31)

11.5 Event-Driven Programming 11.5 Event-Driven Programming

 Lập trình hướng thủ tục (Procedural

programming) chương trình thực theo thứ tự thủ tục.

 Trong lập trình hướng kiện (event-driven

(32)

11.5 Event-Driven Programming 11.5 Event-Driven Programming

 Sự kiện

 Một kiện (event) định nghĩa

loại tín hiệu báo cho chương trình có điều xảy

 Sự kiện sinh hành động người

(33)

11.5 Event-Driven Programming 11.5 Event-Driven Programming

 Các lớp Sự kiện

 Các lớp kiện nằm gói java.awt.event

(34)

11.5 Event-Driven Programming 11.5 Event-Driven Programming

 Các lớp Sự kiện

Source Event Type

User Action Object Generated

Clicked on a button JButton ActionEvent

Changed text JTextComponent TextEvent

Double-clicked on a list item JList ActionEvent

Selected or deselected an item JList ItemEvent with a single click

(35)

11.5 Event-Driven Programming 11.5 Event-Driven Programming

(36)

Dialogs Dialogs

 Có thể sử dụng lớp JOptionPane để tạo loại

dialog chuẩn:

Message Dialog hiển thị message đợi

người sử dụng kích nút OK để đóng hộp thoại

Confirmation Dialog hiển thị câu hỏi đề nghị

người sử dụng trả lời, vd: OK hay Cancel

Input Dialog hiển thị câu hỏi nhận liệu vào

từ text field, combo box list

Option Dialog hiển thị câu hỏi nhận câu trả lời

(37)

Dialogs Dialogs

 Tạo các Message Dialog :

Sử dụng phương thức tĩnh lớp JOptionPane

showMessageDialog(Component parentComponent, Object message)

showMessageDialog(Component parentComponent, Object message,String title, int messageType) showMessageDialog(Component parentComponent,

(38)

Dialogs Dialogs

 Tạo các Message Dialog :

Sử dụng phương thức tĩnh lớp JOptionPane

showMessageDialog(Component parentComponent, Object message)

showMessageDialog(Component parentComponent, Object message,String title, int messageType) showMessageDialog(Component parentComponent,

Ngày đăng: 22/05/2021, 21:25

w