table

 avatar
user_8008155
java
2 years ago
5.1 kB
4
Indexable
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Vector;

public class Main extends JFrame {

    public Main() {
        addControls();
        addEvents();
    }

    private DefaultTableModel defaultTableModel;// Hàm khởi tạo không có dữ liệu
    private JTable jTable;// hiễn thị dữ liệu trên các ô của bảng 2 chiều
    private JButton save;
    private JTextField textName, textId;// cho phép thay đổi 1 dòng text đơn
    private JTextArea textNote;// hiễn thị vùng chứa nhiều dòng

    private void addControls(){

        Container con = getContentPane();//lấy lớp chứa chửa sổ ra
        JPanel Jpa = new JPanel();
        Jpa.setLayout(new BoxLayout(Jpa, BoxLayout.Y_AXIS));//Xuất theo chiều ngang của table

        JPanel pnTable = new JPanel();
        pnTable.setLayout(new BorderLayout());

        defaultTableModel = new DefaultTableModel();
        defaultTableModel.addColumn("ID");
        defaultTableModel.addColumn("Name");
        defaultTableModel.addColumn("Note");

        jTable = new JTable(defaultTableModel);
        JScrollPane Scr = new JScrollPane(jTable, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        pnTable.add(Scr,BorderLayout.CENTER);
        Jpa.add(pnTable);

        JPanel jpText = new JPanel();
        jpText.setLayout(new BoxLayout(jpText,BoxLayout.Y_AXIS));

        JPanel jpID = new JPanel();
        JLabel jlID = new JLabel("ID",SwingConstants.RIGHT);
        textId = new JTextField(20);
        jpID.add(jlID);
        jpID.add(textId);

        JPanel jpName = new JPanel();
        JLabel jlName = new JLabel("Name", SwingConstants.RIGHT);
        textName = new JTextField(20);
        jpName.add(jlName);
        jpName.add(textName);

        JPanel jpNote = new JPanel();
        JLabel jlNote = new JLabel("Note",SwingConstants.RIGHT);
        textNote = new JTextArea(5,20);
        jpNote.add(jlNote);
        jpNote.add(textNote);

        jpText.add(jpID);
        jpText.add(jpName);
        jpText.add(jpNote);

        jlID.setPreferredSize(jlName.getPreferredSize());
        jlNote.setPreferredSize(jlName.getPreferredSize());

        Jpa.add(jpText);

        JPanel JpButton = new JPanel();
        save = new JButton("Save");
        JpButton.add(save);
        Jpa.add(JpButton);

        con.add(Jpa);
    }

    private void addEvents(){
        save.addActionListener(e -> {
            String ID = textId.getText();
            String NAME = textName.getText();
            String NOTE = textNote.getText();

            if ((ID.trim().length() == 0)&& (NAME.trim().length() == 0)){
                JOptionPane.showMessageDialog(null, "Opp, please check ID And Name.",
                        "Inane error", JOptionPane.ERROR_MESSAGE);
                return;
            }else if ((ID.trim().length() == 0) ) {//trim khoảng cách 2 đầu
                JOptionPane.showMessageDialog(null, "Opp, please check ID.",
                        "Inane error", JOptionPane.ERROR_MESSAGE);
                return;
            } else if (NAME.trim().length() == 0) {
                JOptionPane.showMessageDialog(null, "Opp, please check Name.");
            return;
            }

            Vector<String> vector = new Vector<String>();
            vector.add(ID);
            vector.add(NAME);
            vector.add(NOTE);
            defaultTableModel.addRow(vector);

            textId.setText("");
            textName.setText("");
            textNote.setText("");

        });
        
        jTable.addMouseListener(new MouseListener() {
            @Override
            public void mouseClicked(MouseEvent e) {
                ClickTable();
            }

            @Override
            public void mousePressed(MouseEvent e) {

            }

            @Override
            public void mouseReleased(MouseEvent e) {

            }

            @Override
            public void mouseEntered(MouseEvent e) {

            }

            @Override
            public void mouseExited(MouseEvent e) {

            }
        });
    }
    
    public void ClickTable(){
        int row = jTable.getSelectedRow();
        if (row > -1) {
            String ID = jTable.getValueAt(row, 0) + "";
            String NAME = jTable.getValueAt(row, 1) + "";
            String NOTE = jTable.getValueAt(row, 2) + "";
            new ChangeInformation(ID, NAME, NOTE).Show();

            jTable.setValueAt(ChangeInformation.ID, row, 0);
            jTable.setValueAt(ChangeInformation.NAME, row, 1);
            jTable.setValueAt(ChangeInformation.NOTE, row, 2);
        }
    }
    
    


    private void Show(){
        this.setTitle("Table");
        this.setSize(500,500);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setResizable(false);
        this.setVisible(true);
    }

    public static void main(String[] args) {
        new Main().Show();
    }
}
Editor is loading...