J'ai créé un JTable dans une classe maintenant j'ai besoin d'utiliser la même table, pour définir une certaine valeur, dans une classe différente. comment dois-je utiliser le même JTable dans cette classe différente. s'il vous plaît, dites.en utilisant une table dans une classe différente
Répondre
Ajoutez une méthode publique dans la classe qui entoure JTable qui définira la valeur et appellera cette méthode de toutes les autres classes.
La classe qui contient JTable
doit exposer ce champ d'une manière ou d'une autre. Alternativement et de préférence, la classe peut fournir une méthode pour changer une certaine valeur dans JTable
. La autre classe doit faire référence à la classe qui contient le JTable
(directement ou non):
class A {
private JTable myJTable;
public JTable getMyJTable() {
return myJTable;
}
public void setMyJTableValue(Object value) {
// set the value accordingly
}
}
class B {
private A a;
public void methodWithAccessToA() {
// business logic ...
a.setMyJTableValue(myBusinessValue);
// ...
a.getMyJTable().setValue(myBusinessValue);
}
}
Vous n'avez pas besoin de la deuxième classe d'avoir accès à la table réelle, seulement à la TableModel
sous-jacent. Ceci peut être réalisé de plusieurs façons:
- Méthode publique
getTableModel()
dans la première classe que le second peut utiliser pour obtenir une référence au modèle - Les deux classes de conserver une référence au modèle qui est défini lors de leur les instances sont créées
- Une méthode publique
addValue()
dans la première classe qui prend la valeur et l'ajoute au modèle de table sans exposer le modèle lui-même. C'est la meilleure solution si vous avez seulement besoin d'effectuer des opérations très spécifiques comme l'ajout de valeurs.
La méthode qui vous convient le mieux dépend de votre scénario spécifique.
Si vous avez besoin de modifier les valeurs, pourquoi ne travaillez-vous pas sur le modèle de table?
JTable.getModel()
(ou getTableModel(), je ne me souviens pas)
Peut-être que je suis trop anale en matière d'encapsulation, mais je ne voudrais pas exposer le TableModel ou JTable lui-même habituellement. Dans la classe contenant le JTable je créerais des méthodes pour ajouter/enlever/placer les valeurs de la JTable. Le cas échéant, je pourrais aussi avoir la classe avec le JTable observer un service qui pourrait changer ses données.
+1 sur l'idée d'observateur – akf
- 1. Comment implémenter le "versioning de classe" (en utilisant une version différente de la même classe)
- 2. Comment ajouter une classe au premier td dans chaque tr dans une table en utilisant jQuery
- 3. Migration de MySQL vers une table avec une structure différente
- 4. Dans Django, comment pouvez-vous changer la classe User pour travailler avec une table db différente?
- 5. Comment sélectionner une ligne dans une table en utilisant jquery?
- 6. Rendre la valeur d'une table égale à une autre valeur dans une table différente
- 7. en utilisant la classe comme une propriété?
- 8. Comment faire une boucle dans une table et transformer des lignes en objets en utilisant nokogiri
- 9. Puis-je supprimer une classe allouée dynamiquement en utilisant une fonction dans cette classe?
- 10. Javadoc seulement une classe dans un paquet en utilisant Ant
- 11. en utilisant un const statique dans une structure/classe
- 12. SQL UPDATE SET une colonne doit être égale à une valeur dans une table liée référencée par une colonne différente?
- 13. Appelez une classe dans une autre classe en PHP
- 14. utilise une chaîne différente dans la fonction?
- 15. en utilisant une classe de modèle en tant qu'argument
- 16. Comment lier une table deux fois à une autre table en utilisant cakePHP
- 17. Contrainte SQL Server 2000 impliquant une colonne sur une table différente
- 18. Affichage Table créée par un tableau en utilisant une partie
- 19. Comment générer une table des matières en utilisant dompdf?
- 20. Comment ouvrir une fenêtre dans une session X11 différente?
- 21. Comment faire en sorte que ma sous-classe NSScroller ait une largeur différente?
- 22. C#: Ajouter une méthode générique conditionnelle (restriction générique différente) dans la classe générique
- 23. Envoyer une vidéo en utilisant la nouvelle classe FileReference
- 24. Suppression des doublons en utilisant une table temporaire
- 25. Méthode recommandée pour créer une "table" en utilisant core-animation?
- 26. Multi Table mappée sur une classe dans NHibernate
- 27. Comment puis-je transmettre une variable à une classe JSP en utilisant l'URL?
- 28. en utilisant une variable dans: contient - comment
- 29. Mise à jour d'OpenLDAP en utilisant une classe Java
- 30. Recherche d'entrées en double dans une table
Est-ce que la personne qui a déprimé cela peut me donner une raison? –
Je n'ai pas, mais exposer le JTable semble être une mauvaise idée. Encapsulation et ainsi de suite :) – willcodejavaforfood
J'ai également dit que "Alternativement et de préférence, la classe peut fournir une méthode pour changer une certaine valeur dans le JTable" et encapsulation est nécessaire lorsque vous allez à getJTable() ou getJTableModel(). –