Java自动计算表格某一数字列的和
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<String> tableNames = new Vector<String>();
- tableNames.add("数字列");
- Vector<Vector<String>> tableValues = new Vector<Vector<String>>();
- for (int i = 0; i < 4; i++) {
- Vector<String> vector = new Vector<String>();
- vector.add(null);
- tableValues.add(vector);
- }
- final DefaultTableModel defaultTabelModel = new DefaultTableModel(
- tableValues, 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
- TabelModelEvent_2 frame = new TabelModelEvent_2();
- frame.setTitle("自动计算表格某一数字列的和");
- frame.pack();
- frame.setVisible(true);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- }
|
【内容导航】 | |
第1页:(一) | 第2页:(二) |
评论暂时关闭