BÁO CÁO BÀI TẬP LỚN JAVA Tìm hiểu về lập trình tạo giao diện người sử dụng (GUI) trong Java. Viết chương trình giải phương trình bậc 2

24 1.1K 0
BÁO CÁO BÀI TẬP LỚN JAVA Tìm hiểu về lập trình tạo giao diện người sử dụng (GUI) trong Java. Viết chương trình giải phương trình bậc 2

Đ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

BÁO CÁO BÀI TẬP LỚN LẬP TRÌNH JAVA ĐỀ TÀI 1: “ Tìm hiểu lập trình tạo giao diện người sử dụng (GUI) Java Viết chương trình giải phương trình bậc 2.” Giáo viên hướng dẫn: Ngơ Cơng Thắng Nhóm sinh viên: Đỗ Mỹ Hồng Nhung Nguyễn Thị Thu Thủy Đỗ Thanh Mai Bùi Thị Thu Ngân Phạm Ngọc Thắng Nội dung chính: I Giới thiệu AWT Swing II Các lớp GUI Nhóm container: Nhóm Component: Quản lý cách trình bày (Layout manager) Xử lý kiện Thực đơn I Giới thiệu AWT Swing: AWT: - AWT lớp Java cho phép tạo GUI chấp nhận nhập liệu người dùng thơng qua bàn phím chuột - Gói AWT chứa lớp, giao diện gói khác Hình sau mô tả phần nhỏ hệ thống phân cấp lớp AWT Object CheckboxGroup MenuComponent Component BorderLayout FlowLayout Hệ thống phân lớp AWT GridLayout SWING: - Swing cung cấp thông tin cần thiết để sử dụng thành phần Swing mơơt cách có hiêơu Ví dụ cách mơơt chương trình Swing hiển thị giao diêôn đồ hoạ người dùng, cách quản lý kiêơn kích chơt cuối sẽ viêơc sử dụng khái niêôm chức thế mơơt chương trình thực - Cách sử dụng mỗi thành phần Swing – button, table, thành phần text… (nhìn chung thành phần Swing cung tương tự thành phần AWT Tuy nhiên, chúng có mơơt số tính Ví dụ button, label có thể nạp hình ảnh, ) * So sánh Swing AWT: - AWT: + Thích hợp với việc phát triển ứng dụng GUI đơn giản + Được gán với Platform xác định - Swing: + Không gắn với Platform cố định + Mạnh, đa năng, linh hoạt II Các lớp GUI Nhóm container: - Được dung để chứa thành phần khác - Các lớp container(AWT): Container Frame Dialog Applet Panel 1.1 Container: Container vùng mà bạn có thể đặt phần bạn vào Bất vật mà kế thừa tư lớp Container sẽ container 1.2 Frame: Frame không phụ thuộc vào applet trình duyệt Frame có thể hoạt động vật chứa hay thành phần (component) Có thể sử dụng constructor sau để tạo frame: Frame(): Tạo frame không hiển thị (invisible) Frame(String title): Tạo frame không hiển thị, có tiêu đề 1.3 Dialog: - Lớp ‘Dialog’ tương tự lớp Frame, nghĩa Dialog lớp lớp Window - Đối tượng Dialog tạo sau: Frame myframe=new Frame(“My frame”); // calling frame String title = “Title”; boolean modal = true; // whether modal or not Dialog dlg=new Dialog(myframe, title, modal); 1.4 Applet: Applet container, applet dẫn xuất từ panel 1.5 Panel: - Panel sử dụng để nhóm số thành phần lại với Cách đơn giản để tạo panel sử dụng phương thức khởi tạo nó, hàm Panel() - Panel khơng thể nhìn thấy trực tiếp Do cần thêm panel đến frame Nhóm Component: - Gờm subclass lớp Component Các lớp GUI componet (AWT): Button Label TextFiels TextArea Combobox List Menu…… - Một component có thể đặt giao diện người dùng, có thể thay đổi kích thước hay làm cho nhìn thấy, ẩn 2.1 Nhãn (Label): Lớp sử dụng để trình bày String Nó khơng thể sửa đổi Đây chuỗi đọc Sử dụng constructor sau để tạo label: Label(); //Tạo Label trống Label(String labeltext); //Tạo Label với nội dung cho Label(String labeltext, int alignment) //Tạo Label với chế độ canh lề (alignment) Các phương thức sử dụng phổ biến label trình bày bảng bên dưới: Phương thức Chức set Font(Font ) Thay đổi phông chữ chọn Label setText(String s) Thiết lập nhãn cho Label getText () Lấy nội dung hành Label 2.2 Ô văn (TextField) - Một Textfield vùng chứa dòng văn bản, văn có thể hiển thị hay nhập vào người dùng Trong Java, constructor sau có thể sử dụng để tạo Textfield: + TextField(): Tạo textfield + TextField(int columns): Tạo textfield với số cột cho trước + TextField(String s): Tạo textfield với chuỗi văn cho trước + TextField(String s, int columns): Tạo textfield với nội dung số cột cho trước - Các phương thức thường sử dụng đối tượng TextField sau: Phương thức Chức setEchoChar(char) Thiết lập kí tự trình bày dạng kí tự cho setText(String s) Thiết lập nhãn TextFileld setEditable(boolean) Xác định trường có thể soạn thảo hay khơng Trường soạn thỏa giá trị đặt True setEditable Xác định xem trường có mode soạn thảo hay không Giá trị trả kiểu Boolean 2.3 Vùng văn (TextArea) - Một Textarea sử dụng văn nhập vào có hai hay nhiều dịng Textarea có scrollbar TextArea trường văn có thể soạn thảo với nhiều dịng - Trong Java, bạn có thể sử dụng constructor sau để tạo TextArea: TextArea(): Tạo TextArea TextArea(int rows, int cols): Tạo TextArea với số lượng cột dòng cho trước TextArea(String text): Tạo TextArea vớớcnoij dung cho trước TextArea(String text, int rows, int cols): Tạo TextArea với dung, số dòng số cột cho trước Các phương thức thường sử dụng nhiều TextArea: Phương thức Chức setText(String) Gán nội dung cho TextArea getText() Trả nội dung TextArea setEdiable(boolean) Xác định xem TextAreacó thể soạn thảo hay khơng TextArea soạn thảo giá trị True isEdiable() Xác định xem TextArea có chế độ soạn thảo không Trả giá trị kiểu Boolean insertText(String, int) Chèn chuỗi vào vị trí cho trước replaceText(String, int, int) Thay văn nằm vị trí int, int cho trước 2.4 Button (nút ấn) - Nút ấn hay gọi nút lệnh phần không thể thiếu GUI Sử dụng button cách dễ để nhận tác động người dùng - Để tạo button, thực theo bước sau: + Tạo phần tử Button với nhãn mục đích Button + Bố trí phần tử hình + Hiển thị phần tử hình - Sử dụng hai constructor sau để tạo button Java: Button() Button(String text) - Sử dụng setLabel() getLabel() để thiết lập lấy giá trị nhãn button 2.5 Checkbox RadioButton - Checkbox sử dụng người dùng tiến hành chọn hay nhiều tùy chọn Một radiobutton tương tự checkbox Nó sử dụng option button để xác định chọn lựa - Làm theo bước sau để tạo checkbox hay radiobutton: + Tạo phần tử + Xác định trạng thái khởi đầu phần tử (chọn hay không chọn) + Bố trí phần tử hình + Hiển thị phần tử hình - Thành phần checkbox có thể sử dụng lớp phụ gọi CheckboxGroup để tạo radiobutton - Sử dụng constructor sau để tạo checkbox Java: Checkbox(): Tạo checkbox trống Checkbox(String text): Tạo checkbox với nhãn cho - Để tạo radiobutton, tạo đối tượng CheckboxGroup sau: CheckboxGroup cg=new CheckboxGroup(); Sau tạo đối tượng, sau: Checkbox male=new Checkbox(“male”, cg, true); Checkbox female=new Checkbox(“female”, cg, false); Chúng ta sử dụng phương thức setState() getState() để thiết lập nhận trạng thái checkbox 2.6 Danh sách chọn lựa (Choice List) - Để tạo danh sách chọn lựa, làm theo bước cho sau đây: Tạo danh sách phần tử Thêm mục (có kiểu String) vào danh sách, mỗi lần thêm mục Bố trí danh sách hình Hiển thị danh sách hình - Java hỡ trợ lớp Choice cho phép tạo danh sách chứa nhiều mục Khi danh sách vừa tạo ra, sẽ rỡng Choice colors=new Choice(); Mỗi thời điểm thêm item cách sử dụng phương thức addItem bên dưới: colors.addItem(“Red”); colors.addItem(“Green”); Quản lý cách trình bày (Layout manager) - Layout manager điều khiển cách trình bày vật lý phần tử GUI button, textbox, option button v.v… Một layout manager tự động bố trí thành phần container - Các kiểu trình bày khác nhau(AWT): Flow layout Border layout Card layout Grid layout GridBag Layout 3.1 FlowLayout manager: - ‘FlowLayout’ layout manager mặc định cho Applet Panel Các thành phần xếp từ góc trái đến góc phải hình Các constructor FlowLayout: FlowLayout mylayout = new FlowLayout() // constructor FlowLayout exLayout=new FlowLayout(FlowLayout.RIGHT); setLayout(exLayout); //setting the layout to Flowlayout - Các điều khiển có thể canh bên trái, bên phải hay Để canh điều khiển bên phải, bạn sử dụng cú pháp sau: setLayout(new FlowLayout(FlowLayout.RIGHT)); 3.2 BorderLayout Manager - ‘BorderLayout’ layout manager mặc định cho ‘Window’, ‘Frame’ ‘Dialog’ Layout xắp xếp tối đa thành phần container Những thành phần có thể đặt container sau: NORTH – Đặt đỉnh container EAST – Đặt phía bên phải container SOUTH – Đặt phía container WEST – Đặt phía bên trái container CENTER – Đặt container - Để thêm thành phần vào vùng ‘North’, bạn sử dụng cú pháp sau: Button b1=new Button(“North Button”); // khai báo thành phần setLayout(new BorderLayout()); // thiết lập layout add(b1,BorderLayout.NORTH); // thêm thành phần vào layout - Các thành phần giữ nguyên vị trí tương đối chúng kể container bị thay đổi kích thước - BorderLayout có thể chứa nhiều thành phần Để thực điều này, có thể sử dụng Panel với layout khác để chứa thành phần, sau đặt panel vào BorderLayout 3.3 CardLayout Manager - CardLayout có thể lưu trữ ngăn xếp (stack) giao diện Mỗi giao diện giống bảng (card) Bảng thường đối tượng Panel Một thành phần độc lập button sẽ điều khiển cách trình bày bảng lớp - Đầu tiên, bố trí tập hợp thành phần yêu cầu panel tương ứng Mỗi panel sẽ bố trí vào layout khác Panel sẽ chứa panel Chúng ta thiết lập layout panel Cardlayout sau: CardLayout card=new CardLayout(); panelMain.setLayout(card); - Bước kế tiếp thêm panel khác vào panel chính: panelMain.add(“Red Panel”, panelOne); panelMain.add(“Blue Panel”, panelTwo); Phương thức ‘add()’ sử dụng hai tham số Tham số String làm nhãn panel tham số thứ hai tên đối tượng Panel 3.4 GridLayout Manager: ‘GridLayout’ trợ giúp việc chia container vào ô lưới Các thành phần đặt ô giao dịng cột Mỡi lưới nên chứa thành phần Một lưới sử dụng tất thành phần có kích thước - GridLayout tạo sau: Gridlayout g1=new GridLayout(4,3); //4 số dòng số cột 3.5 GridBagLayout Manager - ‘GridBagLayout’ cách trình bày hiệu phức tạp cách trình bày khác Layout đặt thành phần vào vị trí xác Với layout này, thành phần khơng cần có kích thước Nó tương tự GridLayout manager, thành phần xắp xếp lưới theo dòng cột Tuy nhiên, thứ tự đặt thành phần không theo nguyên tắc từ trái sang phải từ xuống - Để sử dụng layout này, bạn cần cung cấp thông tin kích thước vị trí mỡi thành phần Lớp ‘GridBagLayoutConstraints’ chứa tất thông tin mà lớp GridLayout cần để bố trí định kích thước mỡi thành phần Bảng sau liệt kê danh sách biến thành viên lớp GridBagConstraints: Các biến thành viên Mục đích Weightx, weighty Chỉ phân phối khoảng trống GridBagLayout Giá trị mặc định cho biến Gridwidth, gridheight Chỉ số lượng ô (cell) chiều ngang chiều dọc vùng hiển thị thành phần Ipadx, ipady Chỉ lượng làm thay đổi chiều cao chiều rộng tối thiểu thành phần Nó sẽ thêm 2*ipadx vào chiều rộng tối thiểu 2*ipady vào chiều cao tối thiểu thành phần Giá trị mặc định cho hai Anchor Chỉ cách xắp xếp thành phần cell Mặc định sẽ đặt vào cell Gridx, gridy Chỉ vị trí cell sẽ đặt thành phần Khi thiết lập giá trị gridx ‘GridbagConstraints.RELATIVE’ thành phần thêm sẽ nằm vị trí bên phải thành phần cuối fill Chỉ cách mà thành phần bố trí vào cell thế nếu cell lớn thành phần Mặc định kích thước thành phần khơng thay đổi Bảng sau cung cấp danh sách biến liệu tĩnh giá trị cho biến fill: Giá trị Mơ tả GridBagConstraints.NONE Mặc định, khơng làm thay đổi kích thước thành phần GridBagConstraints.HORIZ ONTAL Tăng chiều rộng thành phần theo chiều ngang (HORIZONTAL) để làm cho thành phần khớp với chiều ngang GridBagConstraints.VERTIC Tăng chiều cao thành phần theo chiều đứng AL (VERTICAL) để làm cho thành phần khớp với chiều dọc GridBagConstraints.BOTH Tăng chiều rộng, chiều cao thành phần theo chiều ngang chiều dọc insets Xác định khoảng cách top, buttom, left right thành phần Mặc định 4 Xử lý kiện - Việc xử lý kiện phụ thuộc vào ứng dụng Ứng dụng cần đăng ký hàm xử lý kiện với đối tượng Hàm xử lý kiện sẽ gọi kiện tương ứng phát sinh - Một Event Listener lắng nghe kiện mà đối tượng thiết lập Mỗi event listener cung cấp phương thức xử lý kiện Lớp thi hành listener cần phải định nghĩa phương thức - Để sử dụng mơ hình này, bạn làm theo bước sau: + Cài đặt giao diện listener thích hợp Cấu trúc sau: public class MyApp extends Frame implements ActionListener + Xác định tất thành phần tạo kiện Các thành phần có thể button, label, menu item, hay window + Xác định tất kiện xử lý Các kiện có thể ‘ActionEvent’ nếu button click hay ‘mouseEvent’ nếu chuột kéo - Thi hành phương thức listener viết hàm xử lý kiện tương ứng với phương thức Bảng sau kiện khác mô tả chúng: Lớp kiện Mô tả ActionEvent Phát sinh button nhấn, item danh sách chọn lựa nhấn đúp (double-click) hay menu chọn AdjustmentEvent Phát sinh scrollbar sử dụng ComponentEvent Phát sinh thành phần thay đổi kích thước, di chuyển, bị ẩn hay làm cho hoạt động FocusEvent Phát sinh thành phần hay nhận focus từ bàn phím ItemEvent Phát sinh mục menu chọn hay bỏ chọn; hay checkbox hay item danh sách click WindowEvent Phát sinh cửa sổ kích hoạt, đóng, mở hay TextEvent Phát sinh giá trị thành phần textfield hay textarea bị thay đổi MouseEvent Phát sinh chuột di chuyển, click, kéo hay thả KeyEvent Phát sinh bàn phím ấn, nhả - Các giao diện cần cài đặt để xử lý số kiện là: ActionListener AdjustmentListener ComponentListener FocusListener ItemListener WindowListener TextListener MouseListener MouseMotionListener KeyListener Các giao diện định nghĩa số phương thức để xử lý mỗi kiện Những phương thức sẽ nạp chồng lớp mà cài đặt giao diện 5 Thực đơn (menu) Ngơn ngữ Java có tập hợp lớp đối tượng để tạo menu Có hai loại menu – pull down pop-up Ta có đặt menubar frame Menubar nằm ngang đặt đỉnh frame Nó liệt kê mục chọn khác hay gọi menu Một menu độc lập có thể chứa mục chọn con, mục gọi Menu Item Java cung cấp Checkbox MenuItem, chúng có thể bật hay mở, phụ thuộc vào trạng thái TÀI LIỆU THAM KHẢO: - Bài giảng mơn Lập trình Java - Phạm Quốc Dũng Bài giảng mơn Lập trình Java – Ngô Công Thắng Tài liệu tham khảo google.com.vn ... KeyListener Các giao diện định nghĩa số phương thức để xử lý mỗi kiện Những phương thức sẽ nạp chồng lớp mà cài đặt giao diện 5 Thực đơn (menu) Ngôn ngữ Java có tập hợp lớp đối tượng để tạo menu... Label 2. 2 Ô văn (TextField) - Một Textfield vùng chứa dòng văn bản, văn có thể hiển thị hay nhập vào người dùng Trong Java, constructor sau có thể sử dụng để tạo Textfield: + TextField(): Tạo. .. có thể đặt giao diện người dùng, có thể thay đổi kích thước hay làm cho nhìn thấy, ẩn 2. 1 Nhãn (Label): Lớp sử dụng để trình bày String Nó khơng thể sửa đổi Đây chuỗi đọc Sử dụng constructor

Ngày đăng: 14/04/2015, 09:01

Từ khóa liên quan

Mục lục

  • BÁO CÁO BÀI TẬP LỚN LẬP TRÌNH JAVA

  • Nội dung chính:

  • Slide 3

  • Slide 4

  • II. Các lớp GUI

  • Slide 6

  • Slide 7

  • Slide 8

  • Slide 9

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

  • Slide 14

  • Slide 15

  • Slide 16

  • Slide 17

  • Slide 18

  • Slide 19

  • Slide 20

Tài liệu cùng người dùng

Tài liệu liên quan