设为首页 加入收藏

TOP

Java自动计算表格某一数字列的和 (一)
2014-11-24 08:41:42 】 浏览:6367
Tags:Java 自动 计算 表格 一数字
\

[java]
package com.han;

import java.awt.BorderLayout;
import java.awt.Container;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;

/**
* 自动计算表格某一数字列的和
* @author HAN
*
*/
public class TabelModelEvent_2 extends JFrame {

/**
*
*/
private static final long serialVersionUID = 7045416728019138021L;

float sum = 0;

public TabelModelEvent_2() {
// TODO Auto-generated constructor stub
final Container container = getContentPane();
JScrollPane scrollPane = new JScrollPane();
Vector tableNames = new Vector();
tableNames.add("数字列");
Vector> tableva lues = new Vector>();
for (int i = 0; i < 4; i++) {
Vector vector = new Vector();
vector.add(null);
tableva lues.add(vector);
}
final DefaultTableModel defaultTabelModel = new DefaultTableModel(
tableva lues, tableNames);
JTable table = new JTable(defaultTabelModel);
scrollPane.setViewportView(table);
container.add(scrollPane, BorderLayout.CENTER);
JPanel panel = new JPanel();
JLabel label = new JLabel("数字列总和:");
final JTextField textField = new JTextField(10);
panel.add(label);
panel.add(textField);
container.add(panel, BorderLayout.SOUTH);

defaultTabelModel.addTableModelListener(new TableModelListener() {

@Override
public void tableChanged(TableModelEvent e) {
// TODO Auto-generated method stub
if (e.getType() == TableModelEvent.UPDATE) {
int row = e.getFirstRow();
int column = e.getColumn();

// keep that every cell value is float or null.
try {
Float.parseFloat((String) defaultTabelModel.getValueAt(
row, column));
} catch (NumberFormatException e1) {
JOptionPane.showMessageDialog(container,
"Your input object is not a float type");
defaultTabelModel.setValueAt(null, row, column);
} catch (NullPointerException e2) {
// do nothing
}

for (int i = 0; i < 4; i++) {
Object cellValue = defaultTabelModel.getValueAt(i, 0);
if (cellValue != null) {

float floatValue = Float
.parseFloat((String) cellValue);
sum += floatValue;

}
}
}
textField.setText(new Float(sum).toString());
sum = 0;
}

});
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇POI Excel 02 下一篇Java自动计算表格某一数字列的和(..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目