⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tabledemo.java

📁 利用Swing组件构造一个数据表格 1.生成窗口(调用JFrame) 2.声明一个AppTableModel对象用于存放表格数据 3.产生面板 4.初始化数组
💻 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 + -