Maison >Java >javaDidacticiel >Comment récupérer l'index de ligne d'une ComboBox de table déclenchant un ItemEvent ?
Récupération du CellRow d'un ItemEvent dans une ComboBox de table
Lorsque vous travaillez avec une JTable contenant des colonnes avec des Combo Box, il peut être nécessaire de obtenir la ligne du ComboBox qui a déclenché un ItemEvent. Cependant, ItemListener ne dispose pas d'une méthode pour cela.
Comment déterminer la CellRow
Pour récupérer la ligne souhaitée, envisagez les options suivantes :
Utilisation de TableCellEditor
Dans "Utilisation d'une zone de liste déroulante comme Editor", la méthode getTableCellEditorComponent() de TableCellEditor inclut la ligne comme paramètre. Cette méthode peut être utilisée pour accéder à la ligne.
Synchronisation des colonnes dépendantes
Utilisation de la méthode getValueAt()
Par en remplaçant la méthode getValueAt() du modèle, vous pouvez établir une relation entre la colonne ComboBox et d'autres colonnes de la même ligne. Code modifié :
import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.io.IOException; import javax.swing.*; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableColumn; public class DependentColumn extends JFrame { private static final int DEPENDENT_COL = 1; private static final int ITEM_COL = 2; private static final String[] columnNames = {"Col 1", "Col 2", "Col 3"}; public static void main(String args[]) throws IOException { EventQueue.invokeLater(new Runnable() { @Override public void run() { DependentColumn dc = new DependentColumn(); } }); } public DependentColumn() {
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!