[英]Java, string instead of double after editing cell in TableModel
我將CSV文件導入DefaultTableModel
,一列格式為double,到目前為止一直很好。 但是,如果我在JTable
編輯此列中的單元格(double),那么此單元格不再是double。 現在它是一個字符串。 如何更改TableModel
中已編輯單元格的類型? 我知道我可以用double value = Double.parseDouble(str);
解析一個字符串double value = Double.parseDouble(str);
,但是如何確保在編輯單元格后發生這種情況?
我需要一個新的TableModel
類,如:
class myTableModel extends DefaultTableModel { }
謝謝你的幫助。
例如
@Override
public Class<?> getColumnClass(int c) {
if (c == 1) {
return Short.class;
} else {
return Integer.class;
}
}
要么
import javax.swing.*;
import javax.swing.table.*;
public class RemoveAddRows extends JFrame {
private static final long serialVersionUID = 1L;
private Object[] columnNames = {"Type", "Company", "Shares", "Price"};
private Object[][] data = {
{"Buy", "IBM", new Integer(1000), new Double(80.50)},
{"Sell", "MicroSoft", new Integer(2000), new Double(6.25)},
{"Sell", "Apple", new Integer(3000), new Double(7.35)},
{"Buy", "Nortel", new Integer(4000), new Double(20.00)}
};
private JTable table;
private DefaultTableModel model;
private javax.swing.Timer timer = null;
public RemoveAddRows() {
model = new DefaultTableModel(data, columnNames) {
private static final long serialVersionUID = 1L;
@Override
public Class getColumnClass(int column) {
return getValueAt(0, column).getClass();
}
};
table = new JTable(model);
table.setPreferredScrollableViewportSize(table.getPreferredSize());
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
RemoveAddRows frame = new RemoveAddRows();
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.