6
votes

Lecteur de sélection JTable

J'ai un code qui affiche la table dans des applets et se compose de deux colonnes: -

  1. icône d'image li>
  2. Description LI> ol>

    Voici mon code: P>

        import javax.swing.table.*;
    
        public class TableIcon extends JFrame
         {
        public TableIcon()
        {
        ImageIcon aboutIcon = new ImageIcon("about16.gif");
        ImageIcon addIcon = new ImageIcon("add16.gif");
        ImageIcon copyIcon = new ImageIcon("copy16.gif");
    
        String[] columnNames = {"Picture", "Description"};
        Object[][] data =
        {
            {aboutIcon, "About"},
            {addIcon, "Add"},
            {copyIcon, "Copy"},
        };
    
        DefaultTableModel model = new DefaultTableModel(data, columnNames);
        JTable table = new JTable( model )
        {
            //  Returning the Class of each column will allow different
            //  renderers to be used based on Class
            public Class getColumnClass(int column)
            {
                return getValueAt(0, column).getClass();
            }
        };
        table.setPreferredScrollableViewportSize(table.getPreferredSize());
    
        JScrollPane scrollPane = new JScrollPane( table );
        getContentPane().add( scrollPane );
    }
    
    public static void main(String[] args)
    {
        TableIcon frame = new TableIcon();
        frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
        frame.pack();
        frame.setVisible(true);
      }
    
    } 
    


0 commentaires

3 Réponses :


3
votes

Lire la section du tutoriel de swing sur Comment écrire une sélection de liste Auditeur .

Vous ne pouvez pas ajouter de champ de texte à la table, mais vous pouvez ajouter un champ de texte et une table au même cadre.


3 commentaires

Ou il peut déclencher l'édition d'une cellule donnée de la table pour faire apparaître un champ de texte. L'exigence n'est pas claire pour moi.


@GuillaumaMepePolet Je suis plus préoccupé par l'ajout d'un auditeur d'action à ma table qui est


Il n'y a pas d'actionListener pour une table.



7
votes

1 commentaires

S'il vous plaît ne faites pas ça! Si la table est en mode de sélection unique, le e.gefirstindexdex () ou e.getlastindex () vous donnera la ligne sélectionnée. Appelez ensuite n'importe quelle méthode de listselectionModel , comme (((Listelectionmodel) e.getsource ()). Isselectedindex (e.getfir Stindex ()) par exemple. Par souci de compréhensibilité du code ...



5
votes

Que diriez-vous de cela? XXX


0 commentaires