📄 tabledemo.java
字号:
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.JScrollPane;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.JOptionPane;
import java.awt.*;
import java.awt.event.*;
public class Tabledemo extends JFrame {
public Tabledemo()//构造方法
{
super("RecorderofWorks");
AppTableModel appModel= new AppTableModel();
//myModel存放表格的数据
JTable table = new JTable(appModel);
table.setPreferredScrollableViewportSize(new Dimension(500,70));
JScrollPane scrollPane =new JScrollPane(table);
getContentPane().add(scrollPane,BorderLayout.CENTER);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
//把要显示在表格中的数据存入字符串数组和Object数组中
class AppTableModel extends AbstractTableModel{
final String[] columnNames={"名字","职务","电话","月薪","婚姻状况"};
final Object[][]data={
{"王海","总经理","12345678",new Integer(100000),new Boolean(false)},
{"李平","行政部长","87654321",new Integer(50000),new Boolean(true)},
{"赵子云","办公室主管","23456781",new Integer(10000),new Boolean(false)},
{"李骅","秘书","34567812",new Integer(5000),new Boolean(true)},
};
//一下方法是重写AbstractTableModel方法,其主要用途是被JTable对象调用
public int getColumnCount(){
return columnNames.length;
}
//获得行的数目
public int getRowCount(){
return data.length;
}
public Object getValueAt(int row, int col){
return data[row][col];
}
public Class getColumnClass(int c){
return getValueAt(0,c).getClass();
}
//将表格声明为可编辑的
public boolean isCellEditable(int row,int col){
if(col<2){
return false;
}
else{
return true;
}
}
//改变某个数据的值
public void setValueAt(Object value, int row ,int col){
if(data[0][col]instanceof Integer&&!(value instanceof Integer)){
try{
data[row][col]=new Integer(value.toString());
fireTableCellUpdated(row,col);
}catch(NumberFormatException e){
JOptionPane.showMessageDialog(Tabledemo.this,"The\""+getColumnName(col)
+"\"column accepts only integer values.");
}
}else{
data[row][col]=value;
fireTableCellUpdated(row,col);
}
}
private void printDebugData(){
int numRows=getRowCount();
int numCols =getColumnCount();
for(int i=0;i<numRows;i++){
System.out.print("row"+i+":");
for(int j=0;j<numCols;j++){
System.out.print(""+data[i][j]);
}
System.out.println();
}
System.out.println("------------------------");
}
}
public static void main(String[] args) {
// TODO 自动生成方法存根
Tabledemo frame =new Tabledemo();
frame.pack();
frame.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -