table
user_8008155
java
3 years ago
5.1 kB
5
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...