📄 lyh_prob_2.java
字号:
//Author@ gamespeed_2008@163.com
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.DefaultCellEditor;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableColumnModel;
public class LYH_prob_2 {
private JFrame frame = null;
private JTable table = null;
private Table_Model model = null;
private JScrollPane s_pan = null;
private JButton button_1 = null, button_2 = null;//, button_3 = null;
private JPanel pane = null;
private Integer ID = 0;
/**
* @param args
*/
public LYH_prob_2() {
frame = new JFrame("JTableTest-李耀华");
pane = new JPanel();
//定义删除数据的BUTTON
button_1 = new JButton("删除数据");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
removeData();
}
});
//定义添加数据的BUTTON
button_2 = new JButton("添加数据");
button_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
addData();
}
});
pane.add(button_1);
pane.add(button_2);
model = new Table_Model();
table = new JTable(model);
table.setBackground(Color.white);
TableColumnModel tcm = table.getColumnModel();
//设置每项的宽度
tcm.getColumn(0).setPreferredWidth(50);
tcm.getColumn(1).setPreferredWidth(50);
tcm.getColumn(2).setPreferredWidth(50);
tcm.getColumn(3).setPreferredWidth(50);
tcm.getColumn(4).setPreferredWidth(50);
s_pan = new JScrollPane(table);
frame.getContentPane().add(s_pan, BorderLayout.CENTER);
frame.getContentPane().add(pane, BorderLayout.NORTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);
}
//默认添加为以下内容
private void addData() {
model.addRow( ID++, "李耀华", new Integer(100), new Integer(100), new Integer(200));
table.updateUI();
}
//删除指定的行
private void removeData() {
if(table.getSelectedRow() != -1)
model.removeRow( table.getSelectedRow() );
table.updateUI();
}
public static void main(String args[]) {
new LYH_prob_2();
}
}
/**
* TableModel类,继承了AbstractTableModel
*/
class Table_Model extends AbstractTableModel {
private static final long serialVersionUID = -7495940408592595397L;
private Vector content = null;
private String[] title_name = { "ID", "姓名", "语文", "数学", "总分" };
public Table_Model() {
content = new Vector();
}
public Table_Model(int count) {
content = new Vector(count);
}
public void addRow(Integer ID, String name, Integer chn, Integer math, Integer total ) {
Vector v = new Vector(4);
v.add(0, ID.toString() );
v.add(1, name);
v.add(2, chn);
v.add(3, math);
v.add(4, total);
content.add(v);
}
public void removeRow(int row) {
content.remove(row);
}
public void removeRows(int row, int count) {
for (int i = 0; i < count; i++) {
if (content.size() > row) {
content.remove(row);
}
}
}
//让表格中某些值可修改,但需要setValueAt(Object value, int row, int col)方法配合才能使修改生效
public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}
//使修改的内容生效
public void setValueAt(Object value, int row, int col) {
((Vector) content.get(row)).remove(col);
((Vector) content.get(row)).add(col, value);
this.fireTableCellUpdated(row, col);
}
public String getColumnName(int col) {
return title_name[col];
}
public int getColumnCount() {
return title_name.length;
}
public int getRowCount() {
return content.size();
}
public Object getValueAt(int row, int col) {
return ((Vector) content.get(row)).get(col);
}
//返回数据类型
public Class getColumnClass(int col) {
return getValueAt(0, col).getClass();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -