设为首页 加入收藏

TOP

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

[java]
package com.han;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
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;

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



/**
*
*/
private static final long serialVersionUID = 465495126108026319L;
float sum = 0;
Object currentSelectedValue;

public TableModelEvent_2_Modified() {
// 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);
final 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);

table.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1) {
currentSelectedValue = table.getValueAt(table.getSelectedRow(), table.getSelectedColumn());
}
}
});

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();
if (currentSelectedValue != null) {
sum -= Float.parseFloat((String) currentSelectedValue);
}
// keep that every cell value is float or null.
try {
sum += Float.parseFloat((String) table.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
}
}

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java自动计算表格某一数字列的和 下一篇Java表格模型事件示例

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目