Java Se JTable Valeur (Par ligne)
Je voudrais récupérer la valeur de la Jtable, et je l'ai essayé à l'aide de la getvalueat cependant à chaque fois que j'essaie d'obtenir la valeur de la JTable-il seulement d'obtenir la valeur de la première colonne de la ligne sélectionnée, j'ai besoin d'obtenir la valeur de la Jtable qui j'ai sélectionné. Pouvez vous s'il vous plaît m'aider avec ce
here is my code:
class GetTableValue implements ActionListener{
public void actionPerformed(ActionEvent e){
AbstractButton button = (AbstractButton)e.getSource();
if(e.getActionCommand().equals(button.getActionCommand)){
int row = table.getSelectedRow();
int col = table.getSelectedColumn();
Object data = (Object)table.getValueAt(row, col);
JOptionPane.showMessageDialog(null, data);
}
}
}
C'est mon action le cas où la valeur de la table sélectionnée est affichée dans la JOptionPane malheureusement il ne afficher une valeur(qui est celui que vous avez déjà sélectionné) ne sont pas l'ensemble de la ligne.
Ce code est pour mon Jbutton pour un appel à l'action de l'événement(j'ai déjà exclu de mon code à partir de la JTable, car il récupère la Jtable valeur de ma base de données)
ActionListener tableAction = new GetTableValue();
buttonEdit = new JButton("EDIT");
buttonEdit.addActionListener(tableAction);
le code est simple et clair, j'ai aussi de la recherche M. G(google) sur un bon tutoriel sur l'extraction de ligne, malheureusement, il n'est pas un bon tutoriel pour récupérer Jtable valeur(par ligne).
- Je vous suggère d'utiliser JXTable de SwingX cadre.
- S'il vous plaît ajouter le Swing balise à des postes à l'aide de composants Swing! J'espère que le dernier couple de fois que je l'ai fait pour vous, pourrait vous ont donné le soupçon.
Vous devez vous connecter pour publier un commentaire.
getValueAt
vous renverra la valeur de la cellule (en ligne/col). Sauf si vous êtes un modèle de table prend en charge, il n'existe pas de moyen pratique (au-delà de ce que vous faites) pour obtenir l'ensemble de la ligne dans une seule demande.Aussi, rappelez-vous, si le tableau est trié ou filtrée, le modèle indices ne correspond pas à la vue, vous avez besoin de les convertir d'abord, à l'aide de
convertRowIndexToModel
etconvertColumnIndexToModel
Mise à JOUR
La seule façon de contourner cela est de savoir si le modèle de table que vous utilisez dispose d'un
getRow
(ou l'équivalent) de la méthode. Sans savoir comment, vous, de stocker les données dans le modèle de table c'est à côté de, près de impossible de donner une réponse précise, mais une idée générale serait...Maintenant,
MyRowData
est-ce que jamais la mise en œuvre de la table de données que vous avez créées. Il pourrait être (de préférence) un seulObject
ou, dans le cas de laDefaultTableModel
un tableau d'objets.C'est tout dépend de la façon dont vous avez mis en œuvre votre
TableModel
et comment vous avez mis en œuvre de votre ligne de données, mais c'est le général jistJTable
une traduction entre lui-même et le modèle est automatiquement...JTable#convertRowIndexToModel
etJTable#convertRowIndexToView
. Si, par exemple, vous avez utiliségetSelectedRow
et ensuite utiliséJTable#getValue
, vous n'auriez pas à faire la conversion, comme le tableau de la faire la conversion pour vous (à partir de la vue modèle), si vous avez tenté d'utilisé l'index sélectionné, vous devez d'abord utiliserJTable#convertRowIndexToModel
avant de demander la valeur directement à partir du modèle, comme cela a été démontré. Règle générale, lors de la prise d'un index à partir de la vue/modèle à la mode/mode, vous devez le convertir.JTable.prepareRenderer(...)
s'appuie surJTable#getValueAt
, qui utiliseJTable#convertRowIndexToView
pour convertir la vue d'index de l'index de modèle, ce qui est démontré dans la réponse.JTable
fonctionne avec le tri des indices de maintenir la cohérence avec le point de vue, lorsqu'il communique avec le modèle, elle qui convertit index dans le contexte de modèle, comme vous devriez le faire pour...Si vous voulez toutes les valeurs de la ligne sélectionnée puis essayez ce code.
Vous obtenez les toutes les valeurs pour la ligne sélectionnée, peu importe combien de colonnes sont là dans jtable
Si vous voulez toutes les valeurs de jtable essayez:
Oui, vous pouvez utiliser
Object[]
pour stocker les valeurs. Par exemple:Object[][] val = new Object[row][column]
. Ensuite, retirez le haut-la plupart desfor(int k...)
et neval[j][i] = jTable1.getValueAt(j,i)
. Sinon, vous permettra de remplacerval[k]
à chaque ligne.Cela, vous pouvez obtenir la valeur de l'ensemble de la ligne où u cliquez sur la ligne particulière.
vous pouvez essayer le code ci-dessous pour obtenir la ligne sélectionnée de la valeur: