Lập trình Java - 19

8.Viết chương trình in nội dung file ra màn hình và cho biết tổng số chữ cái, tổng số chữ số đã xuất hiện trong file.

9.Cho 2 file số thực (đã được sắp tăng dần). In ra màn hình dãy số xếp tăng dần của cả 2 file. (Cần tạo cả 2 file dữ liệu này bằng Editor của C++).

10.Viết hàm nhập 10 số thực từ bàn phím vào file INPUT.DAT. Viết hàm đọc các số thực từ file trên và in tổng bình phương của chúng ra màn hình.

11.Viết hàm nhập 10 số nguyên từ bàn phím vào file văn bản tên INPUT.DAT. Viết hàm đọc các số nguyên từ file trên và ghi những số chẵn vào file EVEN.DAT còn các số lẻ vào file ODD.DAT.

12.Nhập bằng chương trình 2 ma trận số nguyên vào 2 file văn bản. Hãy tạo file văn bản thứ 3 chứa nội dung của ma trận tích của 2 ma trận trên.

13.Tổ chức quản lý file sinh viên (Họ tên, ngày sinh, giới tính, điểm) với các chức năng : Nhập, xem, xóa, sửa, tính điểm trung chung.

14.Thông tin về một nhân viên trong cơ quan bao gồm : họ và tên, nghề nghiệp, số điện thoại, địa chỉ nhà riêng. Viết hàm nhập từ bàn phím thông tin của 7 nhân viên và ghi vào file INPUT.DAT. Viết hàm tìm trong file INPUT.DAT và in ra thông tin của 1 nhân viên theo số điện thoại được nhập từ bàn phím.

15.Cho một lớp shapeInt là một lớp interface và một lớp HinhCN là một cài đặt từ lớp ShapeInt gồm các thuộc tính và phương thức như hình sau:


a. Tạo lớp ShapeInt là một lớp Interface

b. Tạo lớp HinhCN là cài đặt của ShapeInt và cài đặt các thuộc tính, phương thức cho lớp như sau:

- ChieuCao/ChieuRong là 2 thuộc tính là chiều rộng và chiều cao của hình

- Các phương thức setter/getter

- Phương thức Contructor

- TinhDienTich() dùng để tính diện tích cho hình chữ nhật

- TinhChuVi() dùng để tính chu vi cho hình chữ nhật

- HienThi() dùng để hiện thị ra chiều rộng, chiều cao, diện tích, chu vi của hình chữ nhật.

- Phương thức main dùng để tạo ra một đối tượng HinhCN và cho phép nhập vào một chiều rộng, chiều cao và hiển thị các kết quả ra màn hình.

CHƯƠNG 4: LẬP TRÌNH ĐỒ HOẠ AWT

4.1. Giới thiệu về AWT

Các ứng dụng phần mềm hiện nay rất thân thiện vì được trình bày nhiều màn hình giao diện đồ họa đẹp. Các ngôn ngữ lập trình hiện nay cung cấp các đối tượng đồ họa, chúng có thể được điều khiển bởi người lập trình, hay bởi người sử dụng. Một trong số những kết quả quan trọng nhất chính là các ngôn ngữ hiện nay được dựa trên Giao diện người dùng đồ họa (Graphical User Interface - GUI). Trong chương này, ta sẽ thảo luận về Java hỗ trợ tính năng GUI cùng các sự thi hành của chúng.

GUI cung cấp chức năng nhập liệu theo cách thân thiện với người dùng. GUI đa dạng từ ứng dụng đến ứng dụng và có thể chứa nhiều điều khiển như hộp văn bản, nhãn, hộp danh sách hay các điều khiển khác. Các ngôn ngữ lập trình khác nhau cung cấp nhiều cách khác nhau để tạo GUI. Các ngôn ngữ như VB hay VC++ có thể cung cấp chức năng kéo và thả trong khi đó phần mềm giống như C++ yêu cầu người lập trình phải viết toàn bộ mã để xây dựng GUI.

Một phần tử (element) GUI được thiết lập bằng cách sử dụng thủ tục sau:

Tạo đối tượng

Xác định sự xuất hiện ban đầu của đối tượng

Chỉ ra nó nằm ở đâu

Thêm phần tử vào giao diện trên màn hình

Một thành phần (component) GUI là một đối tượng trực quan. Người dùng tương tác với đối tượng này thông qua con trỏ chuột hay bàn phím. Các thành phần như là button, label … có thể được nhìn thấy trên màn hình. Bất kỳ cái gì chung cho tất cả các thành phần GUI đều được tìm thấy trong lớp Component. Để tạo các đối tượng GUI chúng ta cần nhập gói java.awt.

AWT là viết tắt của Abstract Windowing Toolkit. AWT là một bộ các lớp trong Java cho phép chúng ta tạo GUI và chấp nhận các nhập liệu của người dùng thông qua bàn phím và chuột. AWT cung cấp các thành phần khác nhau để tạo GUI hiệu quả và lôi cuốn người sử dụng. Các thành phần này có thể là:

Vật chứa (Container)

Thành phần (Component)

Trình quản lý cách trình bày (Layout manager)

Đồ họa (Graphic) và các tính năng vẽ (draw)

Phông chữ (Font)

Sự kiện (Event)

Gói AWT chứa các lớp, giao diện và các gói khác. Hình sau đây mô tả một phần nhỏ của hệ thống phân cấp lớp AWT.

Object

CheckboxGroup

MenuComponent

BorderLayout

Component

FlowLayout

GridLayout


Hình 4.1. Hệ thống cây phân cấp lớp AWT

4.2. Container (vật chứa)

4.2.1. Giới thiệu

Container là vùng mà bạn có thể đặt các thành phần giao diện của bạn vào đó. Bất cứ vật gì mà kế thừa từ lớp Container sẽ là vật chứa. Applet là một vật chứa, Applet được dẫn xuất từ Panel, lớp Panel lại được dẫn xuất từ lớp Container.

Một vật chứa có thể chứa nhiều phần tử, các phần tử này có thể được vẽ hay được tô màu tuỳ thích. Bạn hãy xem vật chứa như một cửa sổ. Như khung (frame), panel, latch, hook, và các thành phần có kích thước nhỏ hơn khác.

Gói java.awt chứa một lớp gọi là Container. Lớp này trực tiếp hay gián tiếp phải sinh ra hai vật chứa được sử dụng phổ biến nhất là Frame và Panel.

Frame và Panel là các vật chứa thường được sử dụng. Frame là cửa sổ độc lập nhưng ngược lại Panel là vùng nằm trong cửa sổ khác. Panel không có các đường biên, chúng được trình bày trong một cửa sổ do trình duyệt hay appletviewer cung cấp. Appletviewer là một công cụ được JDK hỗ trợ để xem các Applet. Frame là lớp con của Window. Chúng được trình bày trong một cửa sổ độc lập, cửa sổ này có chứa các đường biên xung quanh.

4.2.2. Frame

Frame không phụ thuộc vào Applet và trình duyệt. Frame có thể hoạt động như một vật chứa hay như một thành phần (component). Bạn có thể sử dụng một trong những constructor sau để tạo một frame:

Frame(): Tạo một frame nhưng không hiển thị (invisible)

Frame(String title): Tạo một frame không hiển thị, có tiêu đề. Ví dụ 4.1: Minh hoạ cách tạo một Frame.

import java.awt.*;

class FrameDemo extends Frame

{


public FrameDemo(String title)

{

super(title);

}


public static void main(String args[])

{


FrameDemo f=new FrameDemo(“I have been Frameed!!!”); f.setSize(300,200);

f.setVisible(true);

}

}


Lớp được định nghĩa FrameDemo là một lớp con của lớp Frame. Lớp FrameDemo này có một phương thức khởi tạo, trong phương thức khởi tạo này ta cho gọi phương thức super(). Nó sẽ gọi phương thức khởi tạo của lớp cha (trong trường hợp này là Frame). Mục đích của super() là gọi phương thức khởi tạo của lớp cha. Nó sẽ tạo một đối tượng của lớp con, lớp con này sẽ tạo Frame. Tuy nhiên, Frame vẫn không nhìn thấy được và không có kích thước. Để làm được điều này, ta sử dụng hai phương thức nằm trong phương thức main: setSize() và setVisible().

Kết chạy của chương trình giống như hình 4.2


Hình 4 2 Kết quả chạy ví dụ 4 1 4 2 3 Panel Panel được sử dụng để nhóm 1


Hình 4.2. Kết quả chạy ví dụ 4.1

4.2.3. Panel


Panel được sử dụng để nhóm một số các thành phần lại với nhau. Cách đơn giản nhất để tạo một panel là sử dụng phương thức khởi tạo của nó, hàm Panel().

Ví dụ 4.2:Chỉ ra cách tạo một panel:

import java.awt.*;

class PanelTest extends Panel

{


public static void main(String args[])

{


Paneltest p=new Paneltest();

Frame f=new Frame(“Testing a Panel”); f.add(p);

f.setSize(300,200); f.setVisible(true);

}


public Paneltest()

{

}

}


Panel không thể được nhìn thấy trực tiếp. Do đó, chúng ta cần thêm panel đến một frame. Vì vậy ta cần tạo một frame mới và thêm Panel mới được tạo này vào đó. Tuy nhiên, frame sẽ không nhìn thấy được, và không có kích thước. Chúng ta sử dụng hai phương thức trong phương thức main – setSize() và setVisible() để thiết lập kích thước và hiển thị frame.

Kết xuất của chương trình:


Hình 4 3 Kết quả chạy ví dụ 4 2 4 2 4 Dialog Lớp „Dialog‟ tương tự như lớp 2


Hình 4.3. Kết quả chạy ví dụ 4.2

4.2.4. Dialog


Lớp „Dialog‟ tương tự như lớp Frame, nghĩa là Dialog là lớp con của lớp Window. Đối tượng Dialog được tạo như 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);

Tham số „modal‟ chỉ ra rằng dialog sẽ ngăn chặn bất kỳ tương tác nào xảy đến với các cửa sổ được mở khác, trong khi dialog đang được hiển thị trên màn hình. Kiểu hộp thoại này ngăn chặn người dùng tương tác với các cửa sổ khác (của cùng ứng dụng) trên màn hình, cho tới khi dialog được đóng lại.

4.3. Thành phần (Component)

4.3.1. Giới thiệu

TextField

TextComponent

TextArea

Button

Một component có thể được đặt trên giao diện người dùng, có thể được thay đổi kích thước hay làm cho nhìn thấy, ẩn. Ví dụ được dùng phổ biến nhất là Textfield, Label, Checkbox, Textarea v.v… Và các thành phần cao cấp khác như Scrollbar, Scrollpane và Dialog. Tuy nhiên chúng không được sử dụng thường xuyên.



C

o m p o n e n t

Label

Checkbox

List

Scrollbar


Applet

Frame

Dialog

Choice

Panel

Container

Window

Canvas

Hình 4.4. Các lớp thành phần

Bây giờ chúng ta hãy xét một số thành phần thường được sử dụng.

4.3.2. Nhãn

Lớp này được sử dụng để trình bày một String. Nó không thể được sửa đổi. Đây là một chuỗi chỉ đọc. Sử dụng một trong những constructor sau đây để tạo một label:

Label()

Tạo một Label trống.

Label(String labeltext)

Tạo một Label với nội dung được cho.

Label(String labeltext, int alignment)

Tạo một Label với một chế độ canh lề (alignment) , canh lề có thể là Label.LEFT, Label.RIGHT hay Label.CENTER.

Các phương thức được sử dụng phổ biến của label được trình bày ở bảng bên

dưới:


Phương thức

Chức năng

setFont(Font f)

Thay đổi phông chữ của Label

setText(String s)

Thiết lập nhãn cho Label

getText()

Lấy nội dung hiện tại của nhãn

Có thể bạn quan tâm!

Xem toàn bộ 267 trang tài liệu này.

Bảng 4.1. Các phương thức của Label

Ví dụ 4.3:Về cách sử dụng của Label:

import java.awt.*;

class LabelTest extends Frame

{


Label label1=new Label(“This is just a label”); public LabelTest(String title)

{


super(title); add(label1);

}

}


public static void main(String args[])

{


LabelTest f=new LabelTest(“Label”); f.setSize(300,200);

f.show();

}

}


label1=new Label(“This is just a label”);

Ngày đăng: 15/07/2022