table
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...