Bài này, chúng ta sẽ đi thiết kế Giao diện như hình dưới :

frame

 

Cửa sổ này, sẽ hiển thị bảng của Database. Đồng thời cung cấp các thành phần căn bản để truy vấn Database.

Tạo Java Class : giaodien, tiến hành thiết kế giao diện như hình trên.

 

package thongtinxe;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;

public class giaodien extends JFrame implements ActionListener {

    private JTable table = new JTable();

    private JTextField txtmaxe = new JTextField();

    private JTextField txttenxe = new JTextField();

    private JLabel lbNof = new JLabel();

    public giaodien(String title) {

        super(title);

        add(createMainPanel(table, createTitlePanel("THÔNG TIN XE"), createControlPanel()));

        setSize(320, 320);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);

    }

    private JPanel createMainPanel(JTable table, JPanel panelLabel, JPanel panelControl) {
        JPanel panel = new JPanel(new BorderLayout());
        panel.add(createBlankPanel(), BorderLayout.WEST);
        panel.add(createBlankPanel(), BorderLayout.EAST);
        panel.add(panelLabel, BorderLayout.NORTH);
        panel.add(createPanelTable(table), BorderLayout.CENTER);
        panel.add(panelControl, BorderLayout.SOUTH);
        return panel;
    }

    public JPanel createTitlePanel(String title) {
        JPanel mainPanel = new JPanel();
        JLabel lbTitle = new JLabel(title);
        lbTitle.setForeground(Color.BLUE);
        Font font = new Font("arial", Font.BOLD, 25);
        lbTitle.setFont(font);
        mainPanel.add(lbTitle, BorderLayout.NORTH);
        return mainPanel;
    }

    private JPanel createControlPanel() {

        JPanel panelButton = new JPanel(new BorderLayout());

        JPanel panel4 = new JPanel(new GridLayout(1, 3, 10, 10));
        panel4.add(createButton("Insert"));
        panel4.add(createButton("Update"));
        panel4.add(createButton("Delete"));

        JPanel panel = new JPanel(new GridLayout(1, 1, 10, 10));
        panel.add(panel4);

        autoSortPanel(panelButton, panel);

        JPanel panelLeft = new JPanel(new GridLayout(2, 1, 5, 5));
        JLabel lbmapb = new JLabel("Mã xe ");
        panelLeft.add(lbmapb);
        JLabel lbtenpb = new JLabel("Tên xe ");
        panelLeft.add(lbtenpb);

        JPanel panelRight = new JPanel(new GridLayout(2, 1, 5, 5));
        panelRight.add(txtmaxe = new JTextField());
        panelRight.add(txttenxe = new JTextField());

        JPanel panelField = new JPanel(new BorderLayout());
        panelField.add(panelRight, BorderLayout.CENTER);
        panelField.add(panelLeft, BorderLayout.WEST);

        JPanel panelNof = new JPanel(new FlowLayout());
        panelNof.add(lbNof);

        JPanel mainPanel = new JPanel(new BorderLayout());
        autoSortPanel(mainPanel, panelField);
        mainPanel.add(panelNof, BorderLayout.NORTH);
        mainPanel.add(panelField, BorderLayout.CENTER);
        mainPanel.add(panelButton, BorderLayout.SOUTH);

        return mainPanel;
    }

    private void autoSortPanel(JPanel main, JPanel panel) {
        main.add(createBlankPanel(), BorderLayout.NORTH);
        main.add(createBlankPanel(), BorderLayout.WEST);
        main.add(createBlankPanel(), BorderLayout.EAST);
        main.add(panel, BorderLayout.CENTER);
        main.add(createBlankPanel(), BorderLayout.SOUTH);
    }

    private JPanel createBlankPanel() {
        JPanel panel = new JPanel();
        return panel;
    }

    private JPanel createPanelTable(JTable table) {
        JPanel panel = new JPanel(new GridLayout(1, 1));
        panel.add(new JScrollPane(table));
        return panel;
    }

    private JButton createButton(String text) {
        JButton btn = new JButton(text);
        btn.addActionListener(this);
        return btn;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        //Xữ lý sự kiện
    }

    public static void main(String[] args) {
        new giaodien("kynangcntt.info | Java JDBC");
    }

}

Giải thích thêm :

Để có thể đưa dữ liệu lên Giao diện Swing, chúng ta sử dụng JTable để tạo bảng tương ứng như bảng trên Database. Và để phòng trường hợp khi Database có quá nhiều thông tin dẫn đến việc tràn, vỡ giao diện. Chúng ta gắn JTable vào JScrollPanel, tạo một thanh cuộn cho JTable.

Sau khi thiết kế xong giao diện, bài tiếp theo chúng ta sẽ hiển thị dữ liệu lên JTable. Đồng thời xữ lý các truy vấn trên giao diện.

Đánh giá của bạn
Thiết kế giao diện hiển thị – truy vấn Database

Trả lời

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *