Table
unknown
java
2 years ago
4.4 kB
6
Indexable
package Swing; 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 Table extends JFrame { public Table() { addControls(); addEvents(); } private DefaultTableModel dtm; private JTable tblMain; private JTextField txtId, txtName; private JTextArea txtNote; private JButton btnSave; private void addControls() { Container con = getContentPane(); JPanel pnMain = new JPanel(); pnMain.setLayout(new BoxLayout(pnMain, BoxLayout.Y_AXIS)); JPanel pnTable = new JPanel(); pnTable.setLayout(new BorderLayout()); dtm = new DefaultTableModel(); dtm.addColumn("MSSV"); dtm.addColumn("Họ tên"); dtm.addColumn("Ghi chú"); tblMain = new JTable(dtm); JScrollPane scr = new JScrollPane(tblMain, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); pnTable.add(scr, BorderLayout.CENTER); pnMain.add(pnTable); JPanel pnTextField = new JPanel(); pnTextField.setLayout(new BoxLayout(pnTextField, BoxLayout.Y_AXIS)); JPanel pnId = new JPanel(); JLabel lblId = new JLabel("MSSV*", SwingConstants.RIGHT); txtId = new JTextField(20); pnId.add(lblId); pnId.add(txtId); JPanel pnName = new JPanel(); JLabel lblName = new JLabel("Họ tên*", SwingConstants.RIGHT); txtName = new JTextField(20); pnName.add(lblName); pnName.add(txtName); JPanel pnNote = new JPanel(); JLabel lblNote = new JLabel("Ghi chú", SwingConstants.RIGHT); txtNote = new JTextArea(5, 20); pnNote.add(lblNote); pnNote.add(txtNote); pnTextField.add(pnId); pnTextField.add(pnName); pnTextField.add(pnNote); lblId.setPreferredSize(lblNote.getPreferredSize()); lblName.setPreferredSize(lblNote.getPreferredSize()); pnMain.add(pnTextField); JPanel pnButton = new JPanel(); btnSave = new JButton("Save"); pnButton.add(btnSave); pnMain.add(pnButton); con.add(pnMain); } private void addEvents() { btnSave.addActionListener(e -> { String id = txtId.getText(); String name = txtName.getText(); String note = txtNote.getText(); if (id.trim().length() == 0 || name.trim().length() == 0) { JOptionPane.showMessageDialog(null, "Please enter id and name"); return; } Vector<String> vec = new Vector<String>(); vec.add(id); vec.add(name); vec.add(note); dtm.addRow(vec); txtId.setText(""); txtName.setText(""); txtNote.setText(""); }); tblMain.addMouseListener(new MouseListener() { @Override public void mouseClicked(MouseEvent e) { processClickTable(); } @Override public void mousePressed(MouseEvent e) { } @Override public void mouseReleased(MouseEvent e) { } @Override public void mouseEntered(MouseEvent e) { } @Override public void mouseExited(MouseEvent e) { } }); } private void processClickTable() { int row = tblMain.getSelectedRow(); if (row > -1) { String id = tblMain.getValueAt(row, 0) + ""; String name = tblMain.getValueAt(row, 1) + ""; String note = tblMain.getValueAt(row, 2) + ""; new EditTable(id, name, note).showWindow(); tblMain.setValueAt(EditTable.id, row, 0); tblMain.setValueAt(EditTable.name, row, 1); tblMain.setValueAt(EditTable.note, row, 2); } } public void showWindow() { this.setTitle("Hế lô"); this.setSize(500, 500); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { new Table().showWindow(); } }
Editor is loading...