1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng lập trình java - Bài 8

27 12 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 27
Dung lượng 786,29 KB

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

Nội dung

Tài liệu tham khảo bài giảng lập trình java - Lê Đình Thanh , bộ môn mạng và truyền thông máy tính , khoa công nghệ thông tin - Bài 08 Tạo giao diện đồ họa.Sau khi tạo xong phần giao diện của trang chủ, nhấp vào nút bắt đầu để liên kết đến trang thứ hai. Trong phần thực hành này bạn sẽ tạo các đoạn phim để tạo giao diện cho trang thứ hai.

Trang 1

Bài giảng

LẬP TRÌNH JAVA

Tạo giao diện ñồ họa

Bài 8

Trang 2

Lê đình Thanh, Tạo giao diện ựồ họa

Ớ Java Foundation Classes

Ớ Swing

4

Java Foundation Classes (JFC)

Trang 3

Swing: các thành phần như nút bấm, hộp chọn, họp

soạn thảo, danh sách, cây, …ñể phát triển giao diện

ñồ họa

Look-and-Feel: Tùy biến theme

Java 2D: ñể ñồ họa 2 chiều

Internationalization: thay ñổi ngôn ngữ cho người

dùng sử dụng ngôn ngữ khác nhau

Accessibility: cung các các công nghệ hỗ trợ truy

cập khác như ñọc màn hình, …

Swing

Trang 4

Lê đình Thanh, Tạo giao diện ựồ họa

import javax.swing.*; //Nhập các lớp swing

public class HelloWorldSwing {

private static void main(String[] args) {

//Tạo và thiết lập cửa sổ/ựối tượng chứa

JFrame frame = new JFrame("HelloWorldSwing");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Thêm các thành phần vào cửa sổ.

JLabel label = new JLabel("Hello World");

Tạo ứng dụng swing bằng NetBeens

Ớ Tạo và thiết lập cửa sổ/ựối tượng chứa

Ớ Thêm các thành phần vào cửa sổ

Ớ Thêm sự kiện và mã xử lý cho các thành phần trên cửa sổ

Ớ Hiển thị cửa sổ

Trang 5

Lê đình Thanh, Tạo giao diện ựồ họa

Tạo ứng dụng swing bằng NetBeens

Tạo ứng dụng swing bằng NetBeens

Trang 7

Lê đình Thanh, Tạo giao diện ựồ họa

Tạo ứng dụng swing bằng NetBeens

Trang 9

Lê đình Thanh, Tạo giao diện ựồ họa

Tạo ứng dụng swing bằng NetBeens

Trang 10

• Có 03 loại cửa sổ là khung (JFrame) (cửa sổ

chính), hộp thoại (JDialog) và JApplet (applet)

Chức năng chính của cửa sổ là ñể chứa các thành

phần giao diện khác

• Cửa sổ không thể chứa cửa sổ khác (top-level)

• Các thành phần khác muốn hiển thị ñược phải

ñược ñặt trên cửa sổ

• Một số thành phần có thể làm vật chứa, ví dụ

một toolbar chứa các button, textbox, …

• Một thành phần (trừ cửa sổ) ñược chứa trong và

chỉ trong một thành phần khác

• Quan hệ giữa các thành phần trên một giao

diện tạo thành một cây

• Các thành phần ñều ñược kế thừa từ

JComponent

menu1 menu2

Trang 11

Các thành phần giao diện

• Mỗi thành phần giao diện

• ñược ñịnh nghĩa bởi một lớp

• có các phương thức ñể thiết lập/ñọc giá trị các thuộctính

• có các sự kiện liên quan bàn phím, chuột

• Ghi chú: Các hàm xử lý sự kiện cho các ñiều khiểnñược thêm bằng cách kích chuột phải vào ñiều khiển, chọn Events… rồi chọn sự kiện

Trang 12

Lê đình Thanh, Tạo giao diện ựồ họa

Ớ Chức năng: Hiển thị văn bản

Ớ Các phương thức chắnh

Ớ setText(String t): đặt nội dung cho nhãn

Ớ String getText(): đọc nội dung nhãn

24

JTextField

Ớ Chức năng: Nhập một dòng văn bản

Ớ Các phương thức chắnh

Ớ setText(String t): đặt nội dung cho ô chữ

Ớ String getText(): đọc nội dung ô chữ

Ớ Sự kiện chắnh

Ớ keyReleased: nhả phắm

Ớ focusLost: hết focus

Trang 13

• setText(String): ðặt nội dung văn bản

• String getText(): ðọc nội dung văn bản

• setLineWrap(boolean): Cho phép hiển thị một dòng vănbản trên nhiều hàng (gấp hàng)

• setWrapStyleWord(boolean): Có ñược bẻ từ khi gấphàng hay không

• Sự kiện chính

• keyReleased: nhả phím

Trang 14

Lê đình Thanh, Tạo giao diện ựồ họa

Ớ Chức năng: Hiển thị nội dung văn bản có ựịnh dạng và chonhập nhiều dòng văn bản

Ớ Chứa bên trong ựối tượng StyledDocument

Ớ getStyledDocument(): trả lại ựối tượng

StyledDocument ựược chứa bên trong

Ớ StyledDocument

Ớ Chứa danh sách các styles

Ớ Chứa nội dung Nộ dung ựược chia thành nhiều ựoạn, mỗi ựoạn áp dụng một style

Ớ Chèn nội dung có kiểu

Ớ doc.insertString(doc.getLength(), ỘVăn bản có kiểu 1", doc.getStyle("kieu1"));

Ớ doc.insertString(doc.getLength(), ỘVăn bản có kiểu 2", doc.getStyle("kieu2"));

Trang 15

• setText(String): ðặt nội dung văn bản

• String getText(): ðọc nội dung văn bản

• setPage(URL): Load tài liệu HTML

java.net.URL url = APPView.class.getResource("thu.html");try {

Trang 16

Lê đình Thanh, Tạo giao diện ựồ họa

Ớ Cần tạo nhóm cho các radio button ựể chỉ ựược chọn mộttrong cả nhóm

Ớ Tạo JGroupButton rồi ựặt thuộc tắnh groupButton choJRadioButton

Ớ Object getSelectedValue(): Trả lại mục ựược chọn

Ớ setEditable(boolean): Cho biên soạn hay không

Ớ setModel(Model): đặt model

Ớ getModel(): Lấy model

Ớ Sự kiện chắnh

Trang 17

• JList(DefaultListModel): Tạo ñối tượng list với danh sách các mục chọn trong model

• setLayoutOrientation(JList. _): ðặt hướng sắp xếp danh sách

• setVisibleRowCount(int): ðặt số hàng nhìn thấy

• setSelectedIndex(i): Chọn mục I

• setSelectedIndices(int[]): Chọn các mục

• setSelectionInterval(index, size): Chọn các mục liên tục trong khoảng

• ensureIndexIsVisible(i): ðiều chỉnh hiển thị ñể mục I ñược nhìn thấy

• setSelectionMode(ListSelectionModel.MODE): ðặt kiểu chọn các mục

• int getSelectedIndex(): Trả về chỉ mục của mục ñược chọn

• int[] getSelectedIndices(); Trả về chỉ mục của các mục ñược chọn

• Object getSelectedValue(): Trả về giá trị của mục ñược chọn

• Object[] getSelectedValues(): Trả về giá trị của các mục ñược chọn

• Trình bày dữ liệu theo bảng

• Nội dung của bảng ñược quản lý bởi TableModel TableModel bao gồm

• Một mảng String[] chứa tiêu ñề của các cột

• Một mảng Object[][] chứa các ñối tượng là nội dung của các ô Số cột của mảng hai chiều này phải bằng số cột (số phần tử của mảng chứa tiêu ñề)

• Các phương thức ñể lấy số hàng, số cột, tên cột, ñối tượng ở một ô, xác

ñịnh các ô có thể biên tập ñược

• ðể tạo bảng

• Tạo TableModel

• Tạo ñối tượng JTable sử dụng TableModel ñã tạo

• JTable tạo hàng tiêu ñề với số ô bằng số phần tử của mảng tiêu ñề và lần lượt có các tiêu ñề của mảng tiêu ñề

• Với mỗi phần tử [i][j] trong mảng ñối tượng

Trang 18

Lê đình Thanh, Tạo giao diện ựồ họa

class MyTableModel extends AbstractTableModel {

private String[] a = {"First Name", "Last Name", "Sport", "# of Years", "Vegetarian",}; private Object[][] data2 = {

{"Kathy", "Smith", "Snowboarding", new Integer(5), new Boolean(false)}, {"John", "Doe", "Rowing", new Integer(3), new Boolean(true)},

{"Sue", "Black", "Knitting", new Integer(2), new Boolean(false)},

{"Jane", "White", ỘSpeed reading", new Integer(20), new Boolean(true)},

{"Joe", "Brown", "Pool", new Integer(10), new Boolean(false)}

public Class getColumnClass(int c) {

return getValueAt(0, c).getClass();

Trang 19

public class MyRenderer implements TableCellRenderer {}

MyRenderer renderer = new MyRenderer();

Trang 20

Lê đình Thanh, Tạo giao diện ựồ họa

table.setDefaultRenderer(Color.class, new ColorRenderer());

public class ColorRenderer extends JLabel

implements TableCellRenderer {public ColorRenderer() {

setOpaque(true);

}

public Component getTableCellRendererComponent(

JTable table, Object obj,boolean isSelected, boolean hasFocus,int row, int column) {

Trang 21

Ví dụ sử dụng Editor

table.setDefaultEditor(Color.class, new ColorEditor());

public class ColorEditor extends AbstractCellEditor

implements TableCellEditor, ActionListener {

int column) { currentColor = (Color)value;

return button;

Trang 22

Lê đình Thanh, Tạo giao diện ựồ họa

class MyTableModel extends AbstractTableModel {

public boolean isCellEditable(int row, int col) {

}

} Biên tập ựược ựối tượng trong ô (row, col) hay không tùy thuộc vào

isCellEditable(int row, int col) trả về true hay false

Trang 23

MyTableModel model = new MyTableModel();

sorter = new TableRowSorter<MyTableModel>(model);table.setRowSorter(sorter);

//ðặt bộ lọc

RowFilter<MyTableModel, Object> rf = null;

//If current expression doesn't parse, don't update

try {

rf = RowFilter.regexFilter(“xâu con”, col);

} catch (java.util.regex.PatternSyntaxException e) {return;

}

sorter.setRowFilter(rf);

Trang 24

Ghi chú: Nếu chọn hành thì không ñược chọn cột Chọn ô chỉ KHÔNG áp dụng

cho nhiều khoảng

Trang 25

• JMenuBar – Thanh menu ñể chứa các menu

• JMenu – Thực ñơn (ñược ñặt trong JMenuBar)

• Các khoản thực ñơn (ñược ñặt trong JMenu)

• JMenuItem – Một khoản thường

• JRadioButtonMenuItem – Một khoản có nút radio

• JCheckBoxMenuItem – Một khoản có nút check

• Separator – Phân cách các khoản

• Memu chứa menu con

• Sự kiện trên các khoản thực ñơn

• actionPerformed

• Kiểm tra radio hay checkbox ñược chọn trên menu item

Trang 26

Lê đình Thanh, Tạo giao diện ựồ họa

Ớ Menu ựược hiển thị khi kắch chuột phải, còn gọi là menu

ngữ cảnh

Ớ Cần xử lý các sự kiện MousePressed và MouseReleased

trên ựối tượng hiển thị popup menu

private void mainPanelMousePressed(java.awt.event.MouseEvent evt) { maybeShowPopup(evt);

Trang 27

Lê đình Thanh, Tạo giao diện ựồ họa

Tiếp theo

Lập trình socket

Ngày đăng: 08/05/2021, 14:25

TỪ KHÓA LIÊN QUAN