java apache - Java Swing JTable; Menu contextuel (Comment puis-je le sélectionner pour sélectionner la ligne)




1 Answers

comme ça:

table.addMouseListener(new MouseAdapter() {
    @Override
    public void mouseReleased(MouseEvent e) {
        int r = table.rowAtPoint(e.getPoint());
        if (r >= 0 && r < table.getRowCount()) {
            table.setRowSelectionInterval(r, r);
        } else {
            table.clearSelection();
        }

        int rowindex = table.getSelectedRow();
        if (rowindex < 0)
            return;
        if (e.isPopupTrigger() && e.getComponent() instanceof JTable ) {
            JPopupMenu popup = createYourPopUp();
            popup.show(e.getComponent(), e.getX(), e.getY());
        }
    }
});

......

maven download

Short: J'ai besoin d'un "clic droit" pour mettre en évidence la ligne de la cellule.

J'utilise une JTable dans un ScrollPane dans Java Swing (Netbeans Matisse). J'ai un écouteur d'événement MouseClicked sur le JTable qui effectue les opérations suivantes:

if (evt.getButton() == java.awt.event.MouseEvent.BUTTON3) {
          System.out.println("Right Click");
          JPopUpMenu.show(myJTable, evt.getX(), evt.getY())
}

Le problème est que chaque fois que j'exécute un clic droit sur la table JTable, la ligne n'est pas mise en surbrillance (j'ai défini la sélection uniquement sur les lignes btw). J'ai cherché plusieurs fonctions setSelected () mais je n'ai pas trouvé de fonction appropriée. Par défaut, un clic gauche met automatiquement la ligne en surbrillance. Comment puis-je le configurer pour les clics droits?




Related