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

Bài giảng Bài 8: Tiếp tục cải tiến chương trình đồ họa liệt kê các số nguyên tố

14 59 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 14
Dung lượng 197,86 KB

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

Nội dung

Bài giảng Bài 8: Tiếp tục cải tiến chương trình đồ họa liệt kê các số nguyên tố tiến hành cải tiến chương trình liệt kê các số nguyên tố sử dụng cấu trúc dữ liệu List, sử dụng thành phần đồ họa JList, ghi danh sách số nguyên tố vào tệp văn bản , sử dụng hộp thoại chọn tệp JFileChooser.

Trang 1

Bài 8: Tiếp tục cải tiến chương trình

đồ họa liệt kê các số nguyên tố

Lê Hồng Phương, Nguyễn Việt Hùng, Hà Mỹ Linh

phuonglh@gmail.com

Khoa Toán-Cơ-Tin học Trường Đại học Khoa học Tự nhiên Hà Nội

Trang 2

Nội dung

● Tiếp tục cải tiến chương trình liệt kê các số nguyên

tố trong bài giảng trước:

– Sử dụng cấu trúc dữ liệu List

Trang 3

2012-2013 Object-Oriented Programming: IO Streams 3

Nội dung

● Tiếp tục cải tiến chương trình liệt kê các số nguyên

tố trong bài giảng trước:

– Sử dụng cấu trúc dữ liệu List

Trang 4

Thêm chức năng

vào đó là JList – thích hợp cho việc chứa một danh

sách đối tượng

– Tiếp cận hướng đối tượng: JList chỉ là thành phần biểu diễn, mô hình dữ liệu của JList được mô tả bởi ListModel

chứa dữ liệu Ban đầu mục Save tắt (disabled)

Trang 5

2012-2013 Object-Oriented Programming: IO Streams 5

Thêm chức năng

Trang 6

Thêm chức năng

● Chọn thư mục và tên tệp để lưu kết quả:

Trang 7

2012-2013 Object-Oriented Programming: IO Streams 7

Cấu trúc dữ liệu List

● List là giao diện biểu diễu kiểu cấu trúc dữ liệu danh sách

Sẽ có bài giảng riêng về Collection trong Java.

● Có nhiều cách cài đặt List Lớp ArrayList cài đặt List dưới dạng mảng.

● List có thể chứa dữ liệu tổng quát – các phần tử của List

là bất kì Object nào.

● Sử dụng List để chứa các số nguyên:

List<Integer> numbers = new ArrayList<Integer>();

Trang 8

Cấu trúc dữ liệu List

một luồng ra writer, mỗi số trên một dòng:

for (Integer n : numbers) {

writer.write(n.toString());

}

Trang 9

2012-2013 Object-Oriented Programming: IO Streams 9

Thêm nút Save vào thực đơn

// Save

saveMenuItem = new JMenuItem( "Save" );

saveMenuItem setMnemonic(KeyEvent.VK_S);

saveMenuItem setEnabled( false );

saveMenuItem addActionListener( new SaveActionListener());

menu.add( saveMenuItem );

Ban đầu chức năng ghi kết quả bị tắt

Cài đặt chức năng ghi kết quả

Trang 10

class SaveActionListener implements ActionListener {

@Override

public void actionPerformed(ActionEvent arg0) {

// open a message dialog to accept a file name from user

JFileChooser fileChooser = new JFileChooser();

int value =

fileChooser.showSaveDialog(PrimeNumberFrame this );

if (value == JFileChooser.APPROVE_OPTION) {

String fileName =

fileChooser.getSelectedFile().getAbsolutePath();

if ( numbers != null ) {

PrimeNumberIO.writeList(numbers , fileName);

} }

Trang 11

2012-2013 Object-Oriented Programming: IO Streams 11

EnumeratePrimeNumbersListener

public void actionPerformed(ActionEvent event) {

//

// update the prime list

numbers = pn computePrimeNumbers(n);

DefaultListModel listModel = new DefaultListModel();

for (Integer p : numbers ) {

listModel.addElement(p);

}

primeList setModel(listModel);

// enable the Save action

if ( numbers size() > 0) {

saveMenuItem setEnabled( true );

} else {

saveMenuItem setEnabled( false );

}

}

Trang 12

public static void writeList(List<Integer> numbers, String fileName) {

BufferedWriter writer = null ;

try {

writer = new BufferedWriter( new FileWriter(fileName));

for (Integer n : numbers) {

writer.write(n.toString());

writer.write( "\n" );

} } catch (IOException e) {

e.printStackTrace();

} finally {

if (writer != null ) {

try {

writer.close();

} catch (IOException e) {

e.printStackTrace();

Sử dụng tệp văn bản

để lưu dữ liệu

Trang 13

2012-2013 Object-Oriented Programming: IO Streams 13

Chương trình

– ​LookAndFeelLister.java

Trang 14

Tiếp tục cải tiến chương trình

100,000 thì giao diện dường như bị “treo”.

cho giao diện, dùng cho logic của chương trình).

Ngày đăng: 30/01/2020, 07:13

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w