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

📄 jtabledemo.java

📁 本java源程序包括了大量的学习程序(共27章)方便大家学习
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.table.*;
import javax.swing.*;
import javax.swing.event.*;

public class JTableDemo extends JFrame implements TableModelListener
{ 
    private JTable table;              //表格
    private MyTable mytable;           //TableModel
    private JComboBox c;               //班级
    private JLabel label;

    public JTableDemo() 
    {
    	super("TableModelDemo");
    	setSize(400, 300);     
		try
		{    //设置系统外观
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		}catch(Exception e){}
		
    	Container container = getContentPane();
       	//创建表格
    	mytable = new MyTable();
    	mytable.addTableModelListener(this);
       	table = new JTable(mytable);
       	//创建下拉框
       	c = new JComboBox();
       	c.addItem("03A01");
       	c.addItem("03A02");
       	c.addItem("03A03");
       	//设置表格第3列的单元格编辑器
       	table.getColumnModel().getColumn(2).setCellEditor(new DefaultCellEditor(c));

        container.add(new JScrollPane(table));
        
        //创建标签,显示信息
        label = new JLabel("", JLabel.CENTER);
        label.setPreferredSize(new Dimension(400, 30));
        label.setFont(new Font("Serif", Font.PLAIN, 14));
        container.add(label, BorderLayout.SOUTH);
        
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    
    //处理TableModelEvent事件
    public void tableChanged(TableModelEvent event)
    {
    	int row = event.getFirstRow();
        String fullName = ((String)(mytable.getValueAt(row, 1)));
        String className =((String)(mytable.getValueAt(row, 2)));
        label.setText(fullName + "现在是 " + className + " 的同学");
    }

    public static void main(String args[]) 
    {
        JTableDemo application = new JTableDemo();
    }
}

class MyTable extends AbstractTableModel
{
    private Object[][] data = 
    {
      {"032520", "张三", "03A01", new Integer(50), new Integer(50), 
                                  new Integer(50),new Integer(50 + 50 + 50)},
      {"032521", "李四", "03A02", new Integer(45), new Integer(46), 
                                  new Integer(48), new Integer(45 + 46 + 48)}
    };
    private String[] header = {"学号", "姓名", "班级", "数学", "语文", "英语", "总分"};
    //获取列数
    public int getColumnCount() 
    {
        return header.length;
    }
    //获取行数
    public int getRowCount() 
    {
        return data.length;
    }
    //获取列名
    public String getColumnName(int col) 
    {
        return header[col];
    }
    //获取单元格对应的值
    public Object getValueAt(int row, int col) 
    {
        return data[row][col];
    }
    //获取每列数据的类型
	public Class getColumnClass(int cc) 
	{
	    return getValueAt(0, cc).getClass();
	}
	//设置单元格为可编辑
	public boolean isCellEditable(int rowIndex, int columnIndex) 
	{
        return true;	
  }
	//设置单元格所对应的值,
    public void setValueAt(Object value, int row, int col) 
    {
    	if(col != 2)
    		return;
	    data[row][col] = value;
        fireTableCellUpdated(row, col);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -