Définir Le Type de Données De Colonne dans une JTable

J'ai créé une JTable avec un modèle de table . Maintenant basé sur une entrée que j'ai, je veux faire une colonne dans un Type de données particulier. Comment puis-je faire cela?

import java.awt.GridLayout;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.AbstractTableModel;
public class MyTableModelTwo extends AbstractTableModel {
private static final long serialVersionUID = 1L;
private Object[][] data;
private String[] columnNames;
public MyTableModelTwo(Object[][] data) {
this.data = data;
}
@Override
public int getRowCount() {
return data.length;
}
@Override
public int getColumnCount() {
return columnNames.length;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return data[rowIndex][columnIndex];
}
@Override
public Class<?> getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
@Override
public boolean isCellEditable(int rowIndes, int columnIndex) {
return true;
}
@Override
public String getColumnName(int index) {
return columnNames[index];
}
@Override
public void setValueAt(Object value, int rowIndex, int columnIndex) {
data[rowIndex][columnIndex] = value;
fireTableCellUpdated(rowIndex, columnIndex);
}
public MyTableModelTwo(String[] columnNames, Object[][] data) {
this.columnNames = columnNames;
this.data = data;
}
}
class MyTableTwo extends JPanel implements TableModelListener {
private static final long serialVersionUID = 1L;
private JTable table;
private Object[][] data;
private JTextField t;
public MyTableTwo(int noElements, String[] columnNames) {
data = new Object[noElements][columnNames.length];
t = new JTextField();
MyTableModelTwo m = new MyTableModelTwo(columnNames, data);
table = new JTable(m);
table.getModel().addTableModelListener(this);
setLayout(new GridLayout(1, 0));
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);
}
@Override
public void tableChanged(TableModelEvent e) {
}
public JTextField returnT6() {
return t;
}
}
  • Vous voulez changer le type de colonne dynamiquement?
  • oui. J'ai une chaîne de caractères qui indique la colonne doit stocker que des nombres entiers. download.oracle.com/javase/tutorial/uiswing/components/.... Ici, il a mis la colonne de données booléen dans les données elles-mêmes. Je veux trop le faire dynamiquement
  • qu'entendez-vous par "faire"? Votre mise en œuvre renvoie la classe de contenu, afin de remplir la colonne avec de l'ints et d'être heureux 🙂
  • en fait, je pense que c'est un malentendu sur le sens de la "dynamique" - ne pense pas que vous voulez changer le type au cours de la durée de vie du modèle, qui serait extrêmement rare et très probablement de commencer la conception de l'alarme de sonnerie 🙂
  • je suis désolé, je n'étais pas clair. il n'a pas besoin d'être de type entier seulement. toutes les données que je reçois, je le changer à ce type.
  • Balasubramanain si vous allez changer l'état de la DefaultTableModel, puis tous les changements dynamiques retourne return getValueAt(0, c).getClass(); pas une autre définitions nécessaires, assurez-vous avec qu'