A tous les pros de Cocoa : NSTableView

  • Créateur du sujet Créateur du sujet TR
  • Date de début Date de début

TR

Membre actif
21 Septembre 2000
109
0
Bonjour,

Je cherche à mettre en place un NSTableView en Java dans un de mes programmes.
L'idée serait de faire un programme de Chat, et de représenter dans un NSTableView le nom des utilisateurs connectés et leur adresse IP.
J'ai donc dessiné mon NSTableView dans IB, l'ai connecté, etc.
Le problème c'est que je n'arrive pas à créer l'objet permettant de stocker les infos à afficher dans NSTableView. J'ai bouquiné la doc de long en large, mais tous les exemples sont en Objective C, langage que je ne connais pas. Alors une idée?

Merci d'avance,
Thierry
 
Il faut savoir qu'un NSTableView a besoin pour se construire (nombre de colonnes) et de s'alimenter d'une source de données.

Tu devra donc en posseder une. Par contre tu dois dans cet objet (source de données) implémenter certaines methodes de l'interface NSTableView.DataSource pour indiquer à ton objet TableView comment travailler.

Suppososns que :

Tu as une souce de données disons maSource.

Tu implémentes les méthodes:

- numberOfRowsInTableView : pour fournir le nombre maxi d'éléments que ta TableView doit afficher.(il peut être inférieur au nombre d'éléments de ta source)

- tableViewObjectValueForLocation : pour fournir la valeur d'un attribut dont on donne en paramètres la ligne et la colonne.

- .... d'autres méthodes de l'interface.

Eh bien ta source de données est visualisable par une tableview quelconque (exemple maTable) assignant à celle-ci la source de données par
maTable.setDataSource(maSource).

Ce qui est interessant c'est que tu peux te construire ta source de données en rangeant tes données dans un NSArray sourceArray et en les rageant également dans un NSDictionary sourceDictionary.

En effet ces classes ont des methodes toutes faites qui son équivalentes à celles de l'interface à implémenter.

Ce qui est d'ailleurs fait dans l'exemple en objective-C

Pour résumer :
- Tu déclare une source de données
public NSobject maSource
elle a deux attributs une source Array et une source Dictionary.
Tu dois avoir des constructeurs qui reçoivent en paramètre soit un fichier (public void maSource(fichier unfichier) ), une table, etc... Mais dans ces constructeurs tu alimentes des 2 sources attributs.
Pour les méthodes, tu implémententes celles de l'interface et d'autres méthodes privées si tu veux.
Je te conseilles de créer une source avec plusieurs constructeurs pour lui assurer une réutilisation.

J'espère avoir été clair.

A+

Courage.





[Ce message a été modifié par Manu (edited 17 Mars 2001).]
 
Merci pour la promptitude de ta réponse ;-).
J'ai entre temps réussi à trouver un morceau de code sur la mailing liste de OMNI, qui m' aiguillé sur la même voie que celle que tu m'a expliquée.
En revanche, je n'ai pas utilisé les Array ou les dictionnary. N'étant pas informaticien, je ne vois pas bien comment les utiliser. Je me suis donc servi d'un bon vieux java.util.vector, et ça marche impec'.

Merci encore,
Thierry