j'ai écrit le code ci-dessous pour faire une nouvelle JTable quand je fais une sélection sur la JTable actuelle:Créer un nouveau JTable à partir d'une sélection d'un autre JTable?
makeTbale.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
int[] selectedCols = table.getSelectedColumns();
Object[] newCols = new Object[selectedCols.length];
TableModel model = table.getModel();
int selectedRows = model.getRowCount();
Object[][] output = new Object[selectedCols][selectedRows];
for(int nCol = 0; nCol < selectedCols.length; nCol++) {
for{int nRow = 0; nRow<selectedRows;nRow++) {
output[nCol][nRow] = model.getValueAt(nRow, selectedCols[nCol]).toString();
newCols[nCol] = table.getModel().getColumnName(selectedCols[nCol]);
}
}
table.setModel(new DefaultTableModel(output,newCols));
});
Maintenant, ce sont les données que je sélectionne:
Col2 |Col3 |Col5 |Col6 |Col7 |Col10
1/1/2017 |3.45 |1.2 |hello |b1_133 |test
1/2/2017 |3.11 |4.9 |x |b3_122 |you
1/3/2013 |2.98 |5.5 |ask |c1_001 |foo
1/4/2012 |1.90 |2.1 |y |v7_670 |hey
1/6/2000 |9.99 |7.77 |w |c3_890 |fee
1/7/2012 |10.45 |8.75 |test |u0_998 |faa
.
.
.
Il descend à 100 plus de lignes.
Voici le tableau que je reçois après l'exécution de mon code:
Col2 |Col3 |Col5 |Col6 |Col7 |Col10
1/1/2017 |1/2/2017 |1/3/2013 |1/4/2012 |1/6/2000 |1/7/2012
3.45 |3.11 |2.98 |1.90 |9.99 |10.45
1.2 |4.9 |5.5 |2.1 |7.77 |8.75
hello |x |ask |y |w |test
.
.
.
Vous avez l'idée, les colonnes sélectionnées sont maintenant les lignes et les lignes sont des colonnes et seulement 6 lignes sont visionnées (égal au le nombre de colonnes?).
Où est l'erreur dans mon code?
C'est ce que je pensais! Mais quand je le fais, j'obtiens une erreur d'exécution disant que l'index de tableau est hors limites: 6 – Abdane
Vous pourriez également avoir vos boucles for à l'envers, puisque vous avez plus de lignes que de colonnes, si vous les mélangez, alors essayez de mettre plus de lignes dans les colonnes que vous avez l'espace de la colonne – dahui
Essayez la boucle for à selectedCols.length - 1 – dahui