Giáo trình Lập trình java (Nghề: Công nghệ thông tin - Cao đẳng): Phần 2 - Trường CĐ nghề Kỹ thuật Công nghệ

79 11 0
Giáo trình Lập trình java (Nghề: Công nghệ thông tin - Cao đẳng): Phần 2 - Trường CĐ nghề Kỹ thuật Công nghệ

Đ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

(NB) Giáo trình Lập trình java cung cấp các kiến thức cơ bản về các kỹ thuật lập trình nâng cao với ngôn ngữ Java. Giúp sinh viên làm quen với kỹ thuật lập trình giao diện và lập trình mạng; lập trình dịch vụ web với Java. Cung cấp cho sinh viên các kỹ năng làm chủ các kỹ thuật lập trình ứng dụng trên Java. Mời các bạn cùng tham khảo nội dung phần 2 giáo trình!

Bài 3: Applet Mã bài: MĐCNTT 20.1 Mục tiêu: - Trình bày khái niệm Java Applet - Phân biệt applet ứng dụng Application - Mô tả chu kỳ sống applet - Tạo applet - Hiển thị hình ảnh sử dụng applet - Truyền tham số cho Applet Nội dung Khái niệm Java Applet Applet chương trình Java chạy trình duyệt web Tất applet lớp lớp ‘Applet’ Lớp Applet thuộc package ‘java.applet’ Lớp Applet bao gồm nhiều phương thức để điều khiển trình thực thi applet Để tạo applet, bạn cần import hai gói sau: - java.applet - java.awt Cấu trúc Applet Một Applet định nghĩa cấu trúc từ kiện xảy suốt trình thực thi Đối với kiện, phương thức gọi cách tự động Các phương thức minh hoạ bảng 3.1 Điều quan trọng lúc applet ban đầu Mà vị trí q trình thực thi trước Ngồi phương thức này, cịn có phương thức ‘paint()’ ‘repaint()’ Phương thức paint() dùng để hiển thị đường thẳng (line), text, hình ảnh hình Đối số phương thức đối tượng lớp Graphics Lớp thuộc gói java.awt Câu lệnh sau dùng để import lớp Graphics: import java.awt.Graphics; Phương thức init() start() stop() destroy() Chức Được gọi trình khởi tạo applet Trong q trình khởi tạo, tạo đối tượng để cung cấp cho applet Phương thức dùng để tải hình ảnh đồ hoạ, khởi tạo biến tạo đối tượng Được gọi gọi applet bắt đầu thực thi.Một q trình khởi tạo hồn tất, applet khởi động Phương thức dùng để khởi động lại applet sau ngừng trước Được gọi ngừng thực thi applet Một applet bị ngừng trước bị huỷ Được dùng để huỷ applet Khi applet bị huỷ, nhớ, thời gian thực thi vi xử lý, không gian đĩa trả cho hệ thống 32 Bảng Các phương thức applet Phương thức ‘repaint()’ dùng cửa sổ cần cập nhật lại Phương thức cần thông số Tham số đối tượng lớp Graphics Applet sử dụng phương thức ‘showStatus()’ để hiển thị thông tin trạng thái Phương thức có tham số thuộc kiểu liệu String Để lấy thơng tin applet, user overide phương thức ‘getAppletInfo()’ lớp Applet Phương thức trả đối tượng kiểu String Các phương thức applet init(), start(), stop(), destroy(), paint() thừa kế từ applet Nhưng mặc định phương thức không thực thi thao tác Đây ví dụ đơn giản applet Câu lệnh sau tạo lớp có tên ‘Applet1’, lớp kế thừa tất phương thức biến lớp ‘applet’ public class Applet1 extends Applet Phương thức init() paint() thường dùng để thực số hàm để khởi tạo vẽ applet Phương thức ‘g.drawstring()’ vị trí mà đoạn văn vẽ đâu hình Chương trình hiển thị chuổi dịng 70 cột 80: Chương trình import java.awt.*; import java.applet.*; public class Applet1 extends Applet { int num; public void init() { num = 6; } public void paint (Graphics g) { g.drawString (“Hello to Applet Chapter ” + num, 70, 80); showStatus (getAppletInfo()); //Hiển thị chuổi trả từ hàm getAppletInfo() trạng thái } public String getAppletInfo() //user overrides { return “Created by Aptech”; 33 } } Sử dụng cú pháp sau để dịch Applet: javac Applet1.java Để thực thi applet, ta cần tạo file HTML File HTML sử dụng thẻ applet Thẻ applet lấy tham số đường dẩn file applet Thẻ applet có hai thuộc tính sau: - Width - Height Để truyền tham số vào applet, sử dụng param, sau thẻ value Sau ví dụ thẻ applet: Lúc này, ta thực thi applet cách dùng trình xem applet Đây công cụ JDK Để chạy file HTML trình xem applet, ta gõ câu lệnh sau: Appletviewer abc.html // ‘abc.html’ tên file HTML Một tuỳ chọn khác applet ta thêm thẻ applet dịng thích đoạn code Lúc đó, applet dịch, thực thi cách sử dụng lệnh sau: Appletviewer Applet1.java Sau kết chương trình trên: Hình Applet 2.1 Sự khác giũa Application Applet Sau khác application applet: Ø Để thực thi application dùng trình thơng dịch Java, applet chạy trình duyệt (có hổ trợ Java) hay sử dụng công 34 cụ AppletViewer, công cụ kèm với JDK Ø Quá trình thực thi application phương thức ‘main()’ Tuy nhiên applet khơng làm Ø Các application sử dụng ‘System.out.println()’ để hiển thị kết hình applet sử dụng phương thức ‘drawstring()’ để xuất hình Một điều đáng lưu ý chương trình Java đơn lẻ vừa application vừa applet Chức applet bỏ qua thực thi application ngược lại Chương trình minh họa điều Chương trình import java.applet.Applet; import java.awt.*; /* */ public class both extends Applet { Button btn; public void init() { btn = new Button ("Click"); } public void paint (Graphics g) { g.drawString ("Applet", 70, 50); } public static void main (String args[]) { both app = new both(); app.init(); System.out.println("Application Main"); } } 35 Sau biên dịch chương trình, thực thi applet cách sử dụng cú pháp sau: appletviewer both.java Kết sau: Hình Applet Nếu chạy chương trình application, sử dụng cú pháp sau: java both Kết là: Hình Application Khi applet chạy trình duyệt web, đặc điểm thực hữu ích bạn muốn tải applet frame Ví dụ: applet tạo để chat, số website sử dụng cửa sổ chat riêng biệt để chat Bạn kết hợp đặc điểm frame applet vào chương trình 2.2 Những giới hạn bảo mật applet Có số hạn chế mà applet khơng thể làm Bởi applet Java phá hỏng tồn hệ thống user Các lập trình viên Java viết applet để xố file, lấy thơng tin nhân hệ thống… Vì thế, applet java làm việc sau: Ø Không thể đọc ghi file hệ thống file user Ø Không thể giao tiếp với site internet, với trang web có applet mà thơi Ø Khơng thể chạy chương trình hệ thống người đọc 36 Ø Khơng thể tải chương trình lưu trữ hệ thống user Những giới hạn applet chạy trình duyệt Netscape Navigator Microsoft Internet Explorer Chu trình sống Applet Chu trình sống Applet mô tả sơ đồ đây: Destroy Stop Creation Starting Initalization Hình Chu trình sống applet Trước tiên, applet tạo Bước khởi tạo Điều xảy applet nạp Quá trình bao gồm việc tạo đối tượng mà applet cần Phương thức init() override để cung cấp hành vi để khởi tạo Một applet khởi tạo, applet khởi động Applet khởi động ngừng trước Ví dụ, trình duyệt nhảy đến liên kết trang khác, lúc applet bị ngừng, khởi động trở lại user quay trang Sự khác trình khởi tạo trình khởi động applet khởi động nhiều lần, qúa trình khởi tạo xảy lần Phương thức ‘start()’ override để cung cấp thao tác khởi động cho applet Phương thức ‘stop()’ gọi user khơng cịn trang nữa, trang thu nhỏ lại taskbar Kế tiếp phương thức ‘destroy()’ Phương thức giúp applet dọn dẹp trước giải phóng khỏi vùng nhớ, trước truyệt duyệt kết thúc Phương thức dùng để huỷ luồng (thread) hay trình chạy Phương thức ‘destroy()’ khác với phương thức finalize() phương thức destroy() dùng cho applet, finalize() cách tổng quát để dọn dẹp applet Phương thức paint() phương thức quan trọng khác Phương thức cho phép ta hiển thị hình Có thể text, đường thẳng, màu nền, hình ảnh Phương thức xảy nhiều lần suốt trình applet tồn 37 Phương thức thực thi lần sau applet khởi tạo Nó lặp lặp lại di chuyển từ cửa sổ trình duyệt sang cửa sổ khác Nó xảy cửa sổ trình duyệt thay đổi vị trí hình Phương thức ‘paint()’ có tham số Tham số đối tượng lớp Graphics Lớp Graphics thuộc lớp java.awt, phải import đoạn code applet Chúng ta sử dụng đoạn mã sau: import java.awt.Graphics; Truyền tham số cho Applet Trong chương trình sau, truyền tham số cho applet Thành phần nút ‘bNext’ có tên truyền tham số Phương thức ‘init()’ kiểm tra tham số có thên ‘mybutton’ Sau đó, tạo nút với chuổi tên nút Nếu khơng có tham số truyền vào, nút có tên mặc định ‘Default’ Bây định nghĩa thẻ đoạn mã HTML sau: /* */ Chương trình import java.awt.*; import java.applet.*; /* */ public class Mybutton1 extends Applet { Button bNext; public void init() { /*getParameter returns the value of the specified pareameter in the form of a String object*/ String str = getParameter("mybutton"); //when no parameter is passed 38 if (str==null) str = new String ("Default"); //when parameter is passed bNext = new Button(str); add (bNext); } } Sau kết chương trình trên: truyền tham số cho applet Bây sử dụng lớp Graphics để vẻ hình chẳng hạn như: đường thẳng, hình oval, hình chữ nhật Chúng ta học lớp Font phần sau Lớp dùng để in văn font Lớp Graphics Java cung cấp gói AWT cho phép ta vẽ hình đồ hoạ Lớp Graphics bao gồm tập hợp nhiều phương thức Nhưng phương thức sử dụng để vẽ hình hình sau: - Oval - Rectangle - Square - Circle - Lines - Text Bạn vẽ hình màu Frame, Applet canvas môi trường để hiển thị đồ hoạ Để vẽ hình ảnh cần phải có đồ hoạ (Graphical Background) Để có đồ hoạ, goi phương thức ‘getGraphics()’ hay phương thức phương thức sau đây: - repaint() Được gọi cần vẽ lại đối tượng vẽ 39 - update(Graphics g) Được gọi cách tự động phương thức ‘repaint()’ Phương thức xoá đối tượng vẽ, truyền cho đối tượng lớp Graphics để gọi phương thức ‘paint()’; - paint(Graphics g) Được gọi phương thức update() Đối tượng truyền cho phương thức dùng để vẽ Phương thức dùng để vẽ hình ảnh đồ hoạ khác Việc gọi phương thức paint() lặp lặp lại thơng qua phương thức repaint() xố hình vẽ trước Để vẽ hình mà giữ lại hình vẽ trước đó, cần override lại phương thức upate() Public void update (Graphics g) { paint (g); } Ở đây, phương thức update() khơng xố đối tượng vẽ, gọi phương thức paint() Để làm điều này, truyền đối tương lớp Graphics GraphicsContext cho phương thức paint() Ở đây, đối tượng lớp Graphics ‘g’ 5.1 Vẽ chuỗi, ký tự byte Chương trình sau minh hoạ vẽ chuỗi, ký tự byte Để vẽ in chuỗi, lớp Graphics cung cấp phương thức ‘drawString()’ Cú pháp sau: DrawString (String str, int xCoor, int yCoor); Ba tham số là: - Chuỗi cần vẽ - Toạ độ X frame, nơi chuỗi cần vẽ - Toạ độ Y frame, nơi chuỗi cần vẽ Để vẽ xuất ký tự frame, lớp Graphics cung cấp phương thức ‘drawChars’ Cú pháp sau: DrawChars (char array[], int offset, int length, int xCoor, int yCoor); Chú thích tham số: - Mảng ký tự - Vị trí bắt đầu, nới ký tự vẽ - Số ký tự cần vẽ 40 - Toạ độ X, nơi ký tự cần vẽ - Toạ độ Y, nơi ký tự cần vẽ Lớp Graphics cung cấp phương thức ‘drawBytes()’ để vẽ in byte frame Cú pháp phương thức sau: DrawBytes (byte array[], int offset, int length, int xCoor, int yCoor); tham số phương thức là: - Mảng byte - Vị trí offset hay vị trí bắt đầu - Số byte cần vẽ - Toạ độ X - Toạ độ Y Đối với ký tự mảng byte, in phần mảng mà Ở đây, toạ độ x y toạ độ tính theo dịng Chương trình 6.4 minh hoạ cách vẽ chuỗi, ký tự byte Chương trình import java.awt.*; public class DrawStrings extends Frame { public DrawStrings() { super ("Draw strings, characters, bytes"); setSize (300, 300); setVisible (true); } public void paint(Graphics g) { g.drawString ("Good Morning", 50, 50); g.drawString ("Good Afternoon", 50, 75); g.drawString ("Good Night", 50, 100); char ch[] = {}; } public static void main (String args[]) { new DrawStrings(); 41 myFrame.addWindowListener(new WindowAdapter() {// Lop nghe noi khong ten (anonymous inner class listener) public void windowClosing(WindowEvent e) { System.exit(0); } }); } } Ví dụ Frame class MyFrame extends Frame { public MyFrame(String title) { super(title); } public void paint(Graphics g) { g.setColor(Co lor.BLUE); g.fillOval(40, 40, 80, 80); } } 6.9 Cài đặt listener Lớp nghe độc lập: Lớp nghe kiện lớp khác với lớp chứa giao diện Lớp nghe nội khơng tên: Lớp nghe khơng có tên, định nghĩa phương thức xử lý kiện (actionPerformed) Lớp nghe nội có tên: Lớp nghe khai báo nằm lớp khác Lớp nội truy xuất phương thức, liệu lớp chứa (outer class) Dùng lớp nghe nội có tên kĩ thuật phổ biến 9.10 Khung chứa Frame Tạo thành phần GUI xử lý kiện Frame giống Applet Chú ý: 96 Frame khơng có phương thức init, start… Applet Các ứng dụng độc lập dùng Frame phải có hàm main chạy trực tiếp lệnh java Cần có lệnh setSize, setVisible(true) để hiển thị Frame Ở cuối chương trình nên có lệnh: System.exit(0); Bài tập Bài 1: Viết lại chương trình Tính Tổng số sử dụng Frame Bài 2: Mở rộng để người dùng đóng cửa sổ xuất thơng báo xác nhận việc đóng Dùng JOptionPane.showConfirmDialog Thực đơn (Menu) Object MenuComponent Menultem Menu MenuBar CheckboxMenultem Menu MenuBar Separator Menultem Tạo thực đơn Tạo gắn MenuBar vào cửa sổ MenuBar menuBar = new MenuBar(); 97 myFrame.setMenuBar(menuBar); Tạo Menu gắn vào MenuBar Menu fileMenu = new Menu(“File”); menuBar.add(fileMenu); Tạo MenuItem gắn vào Menu MenuItem openItem = new MenuItem(“Open”); fileMenu.add(openItem); Tạo đường phân cách fileMenu.addSeparator(); Xử lý kiện MenuItem Đối tượng nghe MenuItem phải cài đặt giao tiếp ActionListener Tham khảo thêm CheckboxMenuItem PopupMenu Dialog cửa sổ, thường dùng để nhập hiển thị thông tin với người dùng Hai loại hộp thoại Modal: Phải đóng hộp thoại trước chuyển sang cửa sổ khác Modaless: Có thể giữ nguyên hộp thoại chuyển sang cửa sổ khác Dialog kế thừa từ lớp Window, có bố cục mặc định BorderLayout Hộp thoại chứa thành phần GUI xử lý kiện cửa sổ bình thường Ví dụ Frame, Menu Dialog import java.awt.*; 98 import java.awt.event.*; public class DemoFrame3 { public static void main(String[] args { MyFrame myFrame = new MyFrame("Example on my frame"); myFrame.setSize(500, 400); myFrame.setVisible(true); myFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }; } } Ví dụ Frame, Menu Dialog class MyFrame extends Frame implements ActionListener { private MenuBar menuBar; private Menu menu; private MenuItem circleItem, rectItem; public MyFrame(String title) { super(title); menuBar = new MenuBar();setMenuBar(menuBar); menu = new Menu("Draw"); menuBar.add(menu); circleItem = new MenuItem("Circle"); rectItem = new MenuItem("Rectangle"); menu.add(circleItem); menu.add(rectItem); circleItem.addActionListener(this); rectItem.addActionListener(this); 99 } } Ví dụ Frame, Menu Dialog public void actionPerformed(ActionEvent e) { if (e.getSource() == circleItem) { MyDialog dialog = new MyDialog(this, "Modeless Dialog: Circle", false); } } } class MyDialog extends Dialog { MyDialog(Frame parent, String title, boolean isModel) { super(parent, title, isModel); add(new Label("Hi, I am a dialog"), BorderLayout.CENTER); setSize(300, 200); setVisible(true); addWindowListener(new MyDialogListener(this)); } }; // Co the dat lop lam lop noi (inner class) cua lop MyDialog class MyDialogListener extends WindowAdapter { Dialog dialog; MyDialogListener(Dialog dia) { dialog = dia; } public void windowClosing(WindowEvent e) { dialog.setVisible(false); 100 dialog.dispose(); } } Giới thiệu JFC JFC (Java Foundation Class) Là thư viện lập trình giao diện đồ hoạ phát triển dựa thư viện AWT JFC cung cấp khả tạo giao diện linh động, uyển chuyển so với AWT JFC có sẵn phiên từ Jdk 1.2 trở Các lớp JFC nằm gói javax.swing Các thành phần Swing Các thành phần GUI Swing thường bắt đầu chữ J: JButton, JLabel, JTextArea, JFrame, JPanel, JCheckBox, JRadioButton, JList, JComboBox, JScrollPane… Các thành phần mở rộng như: JTabbedPane, JProgressBar, JTable, JTree Việc xử lý kiện thành phần Swing giống thành phần AWT Ví dụ Swing import java.awt.*; import javax.swing.*; public class HelloJFC { public static void main(String[] args) { JFrame frame = new JFrame("JFC"); Icon icon = new ImageIcon("rose.gif"); JButton button = new JButton("Rose", icon); button.setMnemonic('R'); button.setToolTipText("Button Rose"); frame.getContentPane().setLayout(new FlowLayout()); frame.getContentPane().add(button); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.setSize(400, 300); frame.setVisible(true); } } 101 Thiết kế chương trình Các thành phần chương trình Dữ liệu toán cần xử lý (Model) Hiển thị liệu tốn thơng qua giao diện (View) Điều khiển tương tác với người dùng (Controller) Ví dụ: Chương trình điều khiển bóng Model: Dữ liệu bóng View: Giao diện hiển thị liệu bóng Controller: Điều khiển di chuyển bóng Model: Dữ liệu bóng gồm toạ độ tâm (x,y) bán kính bóng View: Giao diện hiển thị gồm có hình bóng nút điều khiển Controller: Khi ấn nút điều khiển bóng di chuyển Một số phương pháp thiết kế Big Blob Tất Model, View, Controller đặt một lớp 102 Ví dụ với Big Blob // file TestBall.java tao mot big blob public class TestBall { public static void main(String[] args) { MyBallFrame myFrame = new MyBallFrame(“Ball Frame”); myFrame.setSize(400, 300); myFrame.setVisible(true); } } // MyBallFrame la mot big blob // No chua ca model, view va controller class MyBallFrame extends Frame implements ActionListener { private int x, y, radius; // du lieu ve qua bong (model) private Button moveLeft, moveRight; // phan GUI (view) moveLeft.addActionListener(this); moveRight.addActionListener(this); // xu ly su kien (controller) public void actionPerformed(ActionEvent event) } Một số phương pháp thiết kế 103 Presentation-Model Tách riêng Model Presentation (gồm View + Controller) Ví dụ với Presentation-Model // file TestBall.java tao model va presentation public class TestBall { public static void main(String[] args) { // tao model BallModel myBall = new BallModel(50, 50, 20); // tao presentation BallPresentation myFrame = new BallPresentation(myBall); } } // file BallPresentation.java chua view va controller // No co mot phan du lieu la model can xu ly // Cach 1: Dung top-level listener public class BallPresentation extends Frame implements ActionListener { private BallModel ball; // model can xu ly private Button moveLeft, moveRight; // phan GUI (view) moveLeft.addActionList ener(this); moveRight.addActionLi stener(this); // xu ly su kien (controller) public void actionPerformed(ActionEvent event) 104 } // file BallPresentation.java, cach 2: dung lop nghe la inner class public class BallPresentation extends Frame { private BallModel ball; // model can xu ly private Button moveLeft, moveRight; // phan GUI (view) moveLeft.addActionListener(new ToLeftListener()); moveRight.addActionListener(new ToRightListener()); // xu ly su kien (controller) class ToLeftListener implements ActionListener { public void actionPerformed(ActionEvent event) { ball.moveLeft(); repaint(); // goi phuong thuc cua lop outer } } } // file BallModel.java chua du lieu va phuong thuc cua qua bong // Model khong phu thuoc vao Presentation public class BallModel { private int x, y, radius; BallModel(int x, int y, int radius) void moveLeft() void moveRight() int getXCenter() int getYCenter() int getRadius() 105 } Một số phương pháp thiết kế Model-View-Controller Tách riêng Model, View Controller view Controller Model Model-View-Controller Ưu điểm Các modul độc lập, dễ quản lý Có thể dễ dàng tạo nhiều giao diện khác cho chương trình Dễ mở rộng chương trình Ví dụ với MVC //file TestBall.java tao model, view va controller public class TestBall { public static void main(String[] args) { // tao model BallModel myBall = new BallModel(50, 50, 20); // tao view BallView ballView = new BallView(myBall); tao controller BallController ballController = new BallController(myBall, ballView); ballView.setVisible(true); } } // file BallView.java public class BallView extends Frame 106 { private BallModel ball; // model can xu ly private Button moveLeft, moveRight; BallView(BallModel ballModel) { ball = ballModel; } public void paint(Graphics g) { g.fillOval( ); } // phuong thuc duoc goi boi controller public void addToLeftListener(ActionListener al) { buttLeft.addActionListener(al); } } // file BallController.java public class BallController { private BallModel ball; // model can xu ly private BallView view; // view can xu ly BallController(BallModel ballModel, BallView ballView) { // nhan model va view can xu ly ball = ballModel; view = ballView; // dat lang nghe tren view view.addToLeftListener(new ToLeftListener()); view.addToRightListener(new ToRightListener()); } // file BallController.java (tiep theo) 107 // xu ly su kien thong qua inner class class ToLeftListener implements ActionListener { public void actionPerformed(ActionEvent event) { ball.moveLeft(); view.repaint(); } } } // file BallModel.java chua du lieu va phuong thuc cua qua bong // Model khong phu thuoc vao View va Controller public class BallModel { private int x, y, radius; BallModel(int x, int y, int radius) void moveLeft() void moveRight() int getXCenter() int getYCenter() int getRadius() } Case study: Chương trình đổi tiền Viết chương trình cho phép tính số lượng tiền VNĐ tương ứng với số lượng USD cho trước Biết đôla = 16,798 đ Mô tả giao diện sau: 108 ExchangeModel ? ExchangeView ? ExchangeController ? Cài đặt thử nghiệm BÀI TẬP Viết chương trình cho phép người dùng chọn hai chế độ Line Point (dùng Checkbox), sau người dùng dùng chuột để vẽ Canvas nằm hình (giống MS Paint) Viết lại chương trình liên quan tới Graphics sử dụng Frame Viết lại chương trình liên quan tới thành phần giao diện GUI sử dụng Frame Viết chương trình tạo menu Frame sau: Colors Shapes Red Circle Green Rect Blue Line Help About Menu Colors cho phép chọn màu, menu Shapes cho phép chọn hình Khi người dùng chọn menu ấn nút draw Frame chương trình vẽ hình màu chọn Menu Help – About hiển thị hộp thoại giới thiệu chương trình 5.Viết chương trình tính diện tích hình: Tạo Frame bên trái có lựa chọn Circle, Rectangle Triangular (dùng Checkbox) Khi người dùng chọn hình bên phải hiển thị nhập liệu tương ứng: Circle có nhập Radius, Rectangle có nhập Width Height, Triangular có nhập cạnh a, b, c Sau người dùng chọn nút Compute chương trình tính hiển thị kết lên hình (Dùng CardLayout) Viết chương trình tạo menu item Nhập hàng Bán hàng Khi người dùng chọn nhập hàng hiển thị Frame cho phép nhập vào tên hàng, số lượng, đơn giá (lưu thông tin vào mảng) Khi người dùng chọn Bán hàng hiển thị Frame (hoặc Dialog) cho phép nhập vào tên người mua cho phép chọn mua số mặt hàng có sẵn; sau hiển thị số tiền mà người phải trả (Thiết kế theo MVC) 109 TÀI LIỆU THAM KHẢO http://www.dickbaldwin.com/toc.htm http://leepoint.net/notes-java/index.html http://java.sun.com/developer/onlineTrainin g/GUI/Swing2/shortcourse.htm 110 ... Màu Red Green Blue White 25 5 25 5 25 5 Light Gray 1 92 1 92 1 92 Gray 128 128 128 Dark Gray 64 64 64 Black 0 Pink 25 5 175 175 Orange 25 5 20 0 Yellow 25 5 25 5 Magenta 25 5 25 5 Bảng Các giá trị RGB Các đối... người dùng gốc Java Java Swing cơng cụ tiện ích GUI cho Java phần mở rộng AWT 3.Container Component a Container Java Swing - Lập trình Java Container thành phần chủ chốt thành phần SWING GUI... public void addComp() { 21 // thêm Panel vào Frame 57 22 mainPanel = new MainPanel(); 23 add(mainPanel); } 24 25 26 @Override 27 public void addEvent() { 28 // thêm kiện 29 30 } } “MainPanel” lớp

Ngày đăng: 17/01/2022, 12:20

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

  • Đang cập nhật ...

Tài liệu liên quan