Comment faire de la JTable colonne contient des cases à cocher?
Préface: je suis horrible avec java, et pire avec java composants de l'interface utilisateur.
J'ai trouvé plusieurs tutos sur comment ajouter des boutons de tables, cependant j'ai du mal avec l'ajout de cases à cocher. J'ai besoin d'avoir une colonne qui dessine une zone de texte coché par défaut (rendu de cellule je pense poignées), puis de cliquer sur une case à cocher, unticks la boîte, retrace ladite boîte, et déclenche un événement quelque part je peux suivre.
actuellement, j'ai un custom cellrenderer:
public class GraphButtonCellRenderer extends JCheckBox implements TableCellRenderer {
public GraphButtonCellRenderer() {
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if(isSelected)
setSelected(true);
else
setSelected(false);
setMargin(new Insets(0, 16, 0, 0));
setIconTextGap(0);
setBackground(new Color(255,255,255,0));
return this;
}}
Qui gère actuellement le dessin de la case à cocher, mais seulement les tiques et les unticks la case si la ligne est sélectionnée. Mais je ne sais pas comment gérer les événements. Vraiment ce que je demande est peut-être un lien vers un bon tuto sur comment ajouter des cases à cocher proprement sur une JTable.
Toute aide est grandement appréciée 🙂
OriginalL'auteur theraven | 2010-05-25
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas besoin de créer votre propre tableau de moteur de rendu. Voici un exemple plus simple. Il suffit de créer une table personnalisée modèle et pour une colonne donnée, de retour de la classe Boolean:
Si la colonne doit être modifiable, retourner true pour
JTable prend en charge le rendu pour vous.
Un autre exemple est ici.
Accepté. Merci beaucoup pour les liens, ceux-ci sont assez simple pour moi de suivre l'intégrer à mon projet en cours
OriginalL'auteur Jay Askren
Comme Pierre le dire, sa simplicité d'utilisation prolongée DefaultTableModel classe, ex:
OriginalL'auteur Kachwahed
Voici un
simpleassez élaborées exemple à l'aide d'unTableCellRenderer
etTableCellEditor
. Voir aussi, Concepts: les Éditeurs et les moteurs de rendu.Addendum: @Jay Askren point est bien pris. Le moteur de rendu par défaut pour
Boolean.class
, comme décrit dans le tutoriel, peut être tout ce dont vous avez besoin.OriginalL'auteur trashgod
La solution la plus simple est d'utiliser le DefaultTableModel et utiliser un objet Boolean comme des valeurs.
OriginalL'auteur Peter
Dans le Swing Concepteur de jeu de la colonne de type boolean
OriginalL'auteur insufferableKnowItAll