栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JTable-> TableModeListener

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JTable-> TableModeListener

一种方法是检查更新事件,以查看事件用于哪一列,并忽略自动更新的列:

import java.awt.*;import javax.swing.*;import javax.swing.event.*;import javax.swing.table.*;public class TableProcessing extends Jframe implements TableModelListener{    public TableProcessing()    {        super("Table");        String[] columnNames = {"Item", "Quantity", "Price", "Cost"};        Object[][] data =        { {"Bread", new Integer(1), new Double(1.11), new Double(1.11)}, {"Milk", new Integer(1), new Double(2.22), new Double(2.22)}, {"Tea", new Integer(1), new Double(3.33), new Double(3.33)}, {"Cofee", new Integer(1), new Double(4.44), new Double(4.44)}        };        DefaultTableModel model = new DefaultTableModel(data, columnNames);        model.addTableModelListener( this );        JTable table = new JTable( model )        { //  Returning the Class of each column will allow different //  renderers to be used based on Class public Class getColumnClass(int column) {     return getValueAt(0, column).getClass(); } //  The Cost is not editable public boolean isCellEditable(int row, int column) {     int modelColumn = convertColumnIndexToModel( column );     return (modelColumn == 3) ? false : true; }        };        table.setPreferredScrollableViewportSize(table.getPreferredSize());        JScrollPane scrollPane = new JScrollPane( table );        getContentPane().add( scrollPane );        String[] items = { "Bread", "Milk", "Tea", "Coffee" };        JComboBox editor = new JComboBox( items );        DefaultCellEditor dce = new DefaultCellEditor( editor );        table.getColumnModel().getColumn(0).setCellEditor(dce);    }        public void tableChanged(TableModelEvent e)    {        if (e.getType() == TableModelEvent.UPDATE)        { int row = e.getFirstRow(); int column = e.getColumn(); if (column == 1 || column == 2) {     TableModel model = (TableModel)e.getSource();     int quantity = ((Integer)model.getValueAt(row, 1)).intValue();     double price = ((Double)model.getValueAt(row, 2)).doublevalue();     Double value = new Double(quantity * price);     model.setValueAt(value, row, 3); }        }    }    public static void main(String[] args)    {        TableProcessing frame = new TableProcessing();        frame.setDefaultCloseOperation( EXIT_ON_CLOSE );        frame.pack();        frame.setLocationRelativeTo( null );        frame.setVisible(true);    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/437451.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号