Bonjour,
je voudrai savoir s'il était possible de remplir directement les colonnes d'un JTable à partir d'un fichier properties, que l'on a préalablement chargé dans un objet Properties?
Merci
Bonjour,
je voudrai savoir s'il était possible de remplir directement les colonnes d'un JTable à partir d'un fichier properties, que l'on a préalablement chargé dans un objet Properties?
Merci
Bah tu peux créer ton propre TableModel basé sur une instance de la classe Properties.
Cf ce cours sur les modèles http://baptiste-wicht.developpez.com...ing/jtable/#L3
Bonjour,
j'ai essayé de reproduire la classe ModeleStatiqueOBjet en suivant le tutorial, mais il y a un endroit où je bloque :
Je ne sais pas comment renvoyer la bonne valeur au niveau du switch, afin d'afficher les valeurs de mon fichier properties.
J'ai pensé à changer le type attendu en paramètre en String, mais ça ne fonctionne pas, il faut obligatoirement prendre un int rowIndex...
Avez-vous une solution?
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 import java.io.FileInputStream; import java.io.IOException; import java.util.Properties; import javax.swing.table.AbstractTableModel; @SuppressWarnings("serial") public class ModeleStatiqueObjet extends AbstractTableModel { private final String[] entetes = {"clé","valeur"}; private Properties prop = new Properties(); public ModeleStatiqueObjet() { try { // Ici le fichier contenant les données de configuration FileInputStream in = new FileInputStream("WAS/ecare.cfg"); prop.load(in); in.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public int getRowCount() { return prop.size(); } public int getColumnCount() { return entetes.length; } public String getColumnName(int columnIndex) { return entetes[columnIndex]; } public Object getValueAt(String rowIndex, int columnIndex) { switch(columnIndex){ case 0: return rowIndex; case 1: return prop.getProperty(rowIndex); default: return null; //Ne devrait jamais arriver } } public Object getValueAt(int rowIndex, int columnIndex) { // TODO Auto-generated method stub return null; } }
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Ahh, mais oui, mes cours de l'année dernière...
J'aurai dû y penser!![]()
Après réflexion, je ne vois pas trop comment l'implémenter...
Je n'avais utilisé qu'une seule fois le patern adaptateur, pour transformer un vector en string.
Mais là, il me semble que c'est plus que de la conversion de type.
Je ne trouve pas comment faire pour correctement utiliser la méthode GetValueAt() .
Merci de votre aide![]()
Sinon ca marcherait tout aussi bien de cette manière :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public class PropertiesTableModelAdapter extends Properties implements TableModel { /** * {@inheritDoc} */ @Override public int getRowCount() { return size(); } /** * {@inheritDoc} */ @Override public int getColumnCount() { return 2; } [...] }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public class PropertiesTableModelAdapter extends DefaultTableModel { private Properties delegated = new Properties(); /** * {@inheritDoc} */ @Override public int getRowCount() { return delegated.size(); } /** * {@inheritDoc} */ @Override public int getColumnCount() { return 2; } [...] }
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
quand au getValueAt() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 // Penser à recharger quand on charge le fichier properties. private List<String> keys = new ArrayList<String>(delegated.getProperties()); /** * {@inheritDoc} */ public String getValueAt(int row, int column) { if (column >= 2) { [...] } String result = keys.get(row); result = (column == 1) ? delegated.get(result) : result; return result; }
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Merci bouye.
J'ai repris le deuxième code que tu m'as proposé, ainsi que la méthode getValueAt().
Juste une petite question, lorsque tu crée la liste de String, tu appelle la méthode getProperties(), mais celle-ci n'existe pas.
Le but, c'est juste de remplir chaque élément de la liste avec une propriété, c'est bien ça?
(Quand je parle de propriété, je parle de la valeur et pas de la clé : clé=valeur dans le fichier properties)
yep remplace ça par keys() ou ce que tu veux qui permet de récupérer toutes les clés et si possible sous forme de String (pense à trier la liste après d'ailleurs avec Collections.sort()).
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Merci, j'ai réussi à m'en sortir en utilisant Properties.keys(), qui fournit la liste des clés.
Partager