Table
unknown
java
3 years ago
4.4 kB
9
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...