Làm một máy tính đơn giản bằng java swing

     

Giao diện người dùng (Graphical User Interface – GUI)

Một giao diện người tiêu dùng (gọi tắt là GUI) là một trong cửa sổ (window) đựng các tinh chỉnh và điều khiển (controls) như button, text box, full bộ box, v.v. Người dùng tương tác cùng với giao diện bằng phương pháp dùng chuột, nhỏ trỏ tuyệt bàn phím.

Bạn đang xem: Làm một máy tính đơn giản bằng java swing

Java cho phép họ tạo giao diện fan dùng bằng cách sử dụng một trong các hai gói là AWT tuyệt Swing. AWT (Asbtract Window Toolkit) là tập con của Swing bắt buộc Swing được sử dụng chủ yếu nhưng mà trong lịch trình Java bắt buộc import cả nhị gói SwingAWT:

import java.awt.*;import javax.swing.*;Các tinh chỉnh trong giao diện đồ họa dùng gói Swing luôn bước đầu bằng chữ “J” ví dụ JLabel, JButton,v.v. Hy vọng tạo giao diện tín đồ dùng, một tờ phải kế thừa lớp JFrame như sau:

import java.awt.*;import javax.swing.*;public class MainClass extends JFrame public static void main(String<> args) // TODO Auto-generated method stub Đối tượng JFrame là một trong những cửa sổ (window) cho phép chúng ta đóng, đổi khác kích thước và có thể đặt các điều khiển. Một cửa sổ hoàn toàn có thể được khởi tạo thành trong cách tiến hành khởi tạo ra của một lớp kế thừa lớp JFrame (ví dụ MainClass) như sau:

public MainClass() // cấu hình thiết lập kích thước cửa sổ this.setSize(640, 480); // cấu hình thiết lập thao tác đóng ứng dụng khi hành lang cửa số đóng this.setDefaultCloseOperation(EXIT_ON_CLOSE); // chất nhận được cửa sổ hiển thị this.setVisible(true);Chúng ta dùng cách thức setSize để cấu hình thiết lập kích thước cho cửa sổ. Cách tiến hành setDefaultCloseOperation chất nhận được đóng vận dụng khi cửa sổ đóng, còn nếu như không dùng cách làm này, vận dụng vẫn liên tục chạy khi cửa sổ đã đóng. Phương thức setVisible chất nhận được hiển thị cửa sổ.

Bây giờ chỉ việc tạo một đối tượng người dùng cửa sổ giao diện:

MainClass mainWindow = new MainClass();Đoạn mã hoàn hảo của lớp MainClass:

import java.awt.*;import javax.swing.*;public class MainClass extends JFrame public static void main(String<> args) // TODO Auto-generated method stub MainClass mainWindow = new MainClass(); public MainClass() // thiết lập cấu hình kích thước hành lang cửa số this.setSize(640, 480); // thiết lập thao tác ngừng hoạt động sổ this.setDefaultCloseOperation(EXIT_ON_CLOSE); // chất nhận được cửa sổ hiển thị this.setVisible(true); Kết quả khi thực thi:

*

Các điều khiển không thể để trực kế tiếp cửa sổ mà đề nghị được đặt trong đối tượng người tiêu dùng JPanel. Như vậy, hy vọng thêm các tinh chỉnh như button, text box, bộ combo box, v.v. Mang lại cửa sổ, đầu tiên bọn họ phải chế tạo ra một tinh chỉnh JPanel:

JPanel panel = new JPanel(new FlowLayout());Đối số cho thủ tục khởi sinh sản của lớp JPanel là một đối tượng người tiêu dùng FlowLayout. Đây là một đối tượng người tiêu dùng tạo bố cục (layout) trên đối tượng JPanel. Một vài dạng bố cục tổng quan phổ biến rất có thể được mô tả như bảng sau:

Kiểu bố cụcMô tả
BorderLayoutPanel được phân tạo thành trên (top), bên dưới (bottom), trái (left), nên (right) và giữa (center)
BoxLayoutĐặt các điều khiển trong một cột đơn hay như là 1 hàng đơn
CardLayoutCho phép chúng ta biến đổi giữa các tập điều khiển
FlowLayoutSắp xếp các điều khiển và tinh chỉnh trên một hàng đơn
GridBagLayoutTạo một bố cục tổng quan dạng lưới và các điều khiển hoàn toàn có thể chiếm giữ những ô
GridLayoutTạo một bố cục dạng lưới
GroupLayoutTạo những bố viên ngang (horizontal) với dọc (vertical) tách biệt
SpringLayoutTạo ba cục được cho phép các điều khiển có mối quan hệ theo địa chỉ của chúng.

Xem thêm: Từ Vựng Tiếng Anh Về Cảm Xúc Ý Nghĩa Nhất, Từ Vựng Tiếng Anh Về Cảm Xúc

Sau khi sản xuất một đối tượng người sử dụng JPanel với cùng 1 layout, bước kế tiếp họ sẽ thêm các tinh chỉnh và điều khiển đến đối tượng người dùng JPanel này. Đoạn mã sau sẽ thêm tinh chỉnh JLabel với JButton đến đối tượng người dùng panel vừa tạo:

panel.add(new JLabel("Test Button: "));panel.add(new JButton("Click me!"));Bước ở đầu cuối là thiết lập cấu hình nội dung mang đến panel với phương thức setContentPanel:

this.setContentPane(panel);Đoạn mã hoàn chỉnh của lớp MainClass:

import java.awt.*;import javax.swing.*;public class MainClass extends JFrame public static void main(String<> args) // TODO Auto-generated method stub MainClass mainWindow = new MainClass(); public MainClass() // tạo thành một đối tượng JPanel JPanel panel = new JPanel(new FlowLayout()); // Thêm hai điều khiển đến panel panel.add(new JLabel("Test Button: ")); panel.add(new JButton("Click me!")); // thiết lập cấu hình nội dung lúc này cho panel this.setContentPane(panel); // tùy chỉnh kích thước cửa sổ this.setSize(640, 480); // tùy chỉnh thiết lập thao tác ngừng hoạt động sổ this.setDefaultCloseOperation(EXIT_ON_CLOSE); // có thể chấp nhận được cửa sổ hiển thị this.setVisible(true); Kết quả:

*

Các tinh chỉnh và điều khiển là yếu tắc cơ bản của giao diện đồ họa người tiêu dùng và mỗi điều khiển sẽ có những mục đích khác nhau. Java cung ứng nhiều lớp với những phương thức cho đều điều khiển riêng lẻ và đồng thời cũng cung cấp những phương thức dành riêng cho mọi điều khiển. Ví dụ như một button rất có thể được định hình qua các phương thức như sau:

JButton btn = new JButton("Initial Text");btn.setText("New text!");String text = btn.getText();btn.setVisible(false);btn.setVisible(true);btn.setMargin(new Insets(100, 100, 100, 100));Dimension dim = btn.getSize();btn.setBackground(Color.BLUE);btn.setForeground(Color.WHITE);btn.setEnabled(false);btn.setEnabled(true);btn.setSize(new Dimension(10, 10));btn.setBounds(new Rectangle(20, 20, 200, 60));panel.add(btn);Kết quả:

*

Sự kiện (events) và cách xử trí sự khiếu nại (events handling)

Giao diện ActionListener

Sự kiện là các hành vi của người dùng như dấn phím, nhấp chuột, di chuyển chuột, v.v. Hay những sự xuất hiện thêm như khối hệ thống phát sinh một thông báo. Hệ thống cần đáp ứng các sự kiện khi bọn chúng xảy ra, lấy ví dụ hiển thị một thông tin khi bạn dủng dấn chuột vào trong 1 button.

Xem thêm: Hệ Điều Hành Có Những Nhiệm Vụ Gì Đối Với Máy Tính ? Câu 4 Trang 69 Sgk Tin Học Lớp 6

Để xử trí sự kiện khi bọn chúng xuất hiện, họ cần lắng nghe những sự khiếu nại đó để đưa ra những hành động, ví dụ xúc tiến đoạn mã hiển thị một thông điệp, phù hợp. Vào Java chúng ta làm điều này bằng phương pháp thực thi những phương thức trong hình ảnh ActionListener. Ngoại trừ ActionListener, Swing còn cung cấp một danh sách các giao diện lắng nghe các sự kiện rất có thể tham khảo trên tutorialspoint.com.

Như vậy, một lớp đồ họa đồ họa người dùng trong Java tất cả hai đặc điểm cơ bản:

Kế vượt lớp JFrameThực thi đồ họa ActionListener

Một cách tưởng tượng trực quan tiền như hình sau đây:

*

Lớp MainClass của họ sẽ thực hiện giao diện ActionListener như sau:

import java.awt.*;import javax.swing.*;public class MainClass extends JFrame implements ActionListener public static void main(String<> args) // TODO Auto-generated method stub MainClass mainWindow = new MainClass(); public MainClass() //... Khi họ gõ từ bỏ khóa implements ActionListener sẽ sở hữu lỗi trong như sau:

*

Nhấn dòng liên kết trước tiên để import những lớp phù hợp:

import java.awt.event.ActionListener;Lúc này lớp MainClass sẽ ảnh hưởng lỗi:

*

Vẫn nhấn vào dòng xoáy liên kết trước tiên sẽ xuất hiện thêm dòng mã import:

import java.awt.event.ActionEvent;Và mở ra một cách thức actionPerformed vào lớp MainClass: