Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1668 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  java-sql-interface swing

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Page Précédente
Auteur Sujet :

java-sql-interface swing

n°953989
crozet
Posté le 16-01-2005 à 18:02:10  profilanswer
 

Salut à tous. Je suis en train de développer un programme en java qui utilise entre autres une liaion JDBC avec ma BDD mysql,swing et java.io.
 
Description programme:
Je récupère des données sous format NMEA d'un GPS, effectue un hashage ($GPLL) dessus pour en ressortir la position actuelle et les enregistre les valeurs dans la BDD.
En même temps, je rentre les valeurs de mon apareil de mesures dans un BDD. J'effectue ensuite une fusion des tables via la clé date dans une table fusion.
Ensuite, je convertis la table fusion en Object[][].
Lors de la création de l'interface swing, qd l'affichage de fusion est demandé, je cree une Jtable avec ce Object[], qui est ensuite mis dans un JScrollPane.
Problème:

L'affichage marche très bien, mais quand les valeurs de la table fusion de la BDD change, je dois redemander le reaffichage de la JTable. ET ca ne marche pas. J'ai bien essayé le repaint, mais kedalle.
 
Mes Questions:
Est-ce que je dois utiliser un PaintManager, ou il y a une petite commande de merde que j'ai pas trouvé?
Est-ce que je me goure complétement dans la manière de faire et dans ce cas là, est-ce que vous avez des ex d'interface java simple pour BDD, histoire ke je voie commennt ca marche ( et repondez pâs alltheweb, jai esayé, rien de concluant :) )
Et sinon, est-ce que vous avez trouvé des tutaux private secret qqpart sur swing-PaintManager!
 
 
Hesitez pas a balancer n'importe quel remarque classe, ça peut que me faire avancer!

mood
Publicité
Posté le 16-01-2005 à 18:02:10  profilanswer
 

n°954076
nraynaud
lol
Posté le 16-01-2005 à 19:39:49  profilanswer
 

si tu touches à JTable, je te tue, mais je te fais crever en 3 jours.
 
Tu as un problème de TableModel, je sais pas lequel.
 
Va te renseigner sur MVC (Model View Controller), pour comprendre les bases.

n°954092
benou
Posté le 16-01-2005 à 20:32:57  profilanswer
 

nraynaud a écrit :

si tu touches à JTable, je te tue, mais je te fais crever en 3 jours.


ca va pas nan ?? faut arrêter les délires là, hein !!  [:benou]  


---------------
ma vie, mon oeuvre - HomePlayer
n°954096
nraynaud
lol
Posté le 16-01-2005 à 20:39:23  profilanswer
 

la police de la convivialité à laissé son humour au vestiaire ?
 
largue ta copine et ton poste de modo si c'est pour devenir comme ça. Pis mets-toi au java par la même occasion.

n°954103
benou
Posté le 16-01-2005 à 20:54:06  profilanswer
 

c'est tellement naze que je sais pas quoi te répondre ...


---------------
ma vie, mon oeuvre - HomePlayer
n°954115
Huitre
Posté le 16-01-2005 à 21:06:35  profilanswer
 

bof, t'as aucune répartie, c'est tout.

n°954131
Jubijub
Parce que je le VD bien
Posté le 16-01-2005 à 21:16:06  profilanswer
 

ma soluce (ca vaut ce que ca vaut)
 

Code :
  1. import java.util.ArrayList;
  2. import javax.swing.event.EventListenerList;
  3. import javax.swing.event.TableModelEvent;
  4. import javax.swing.event.TableModelListener;
  5. import javax.swing.table.TableModel;
  6. import java.util.EventListener;
  7. public class GUITableModel implements TableModel {
  8.     protected EventListenerList listenerList = new EventListenerList();
  9.     ArrayList columName = new ArrayList();
  10.     ArrayList data;
  11.     int columnCount = 0;
  12.     int rowCount = 0;
  13.     public static final String[] personneHeader = {"Catégorie", "Nom", "Prenom", "Licence", "Poste"
  14.         , "E actuelle", "E ancienne"};
  15.     public static final String[] classementHeader =
  16.         {"Rang", "Nom", "Points", "GoalAverage", "Buts M", "Buts E", "V",
  17.         "N", "D", "Nb joués"};
  18.     public static final String[] matchHeader = {"Domicile", "Extérieur", "Arbitre", "Date",
  19.     "Status", "Score dom", "Score ext"};
  20.     public GUITableModel(ArrayList data, String[] header) {
  21.       for (int i = 0; i < header.length;i++) {
  22.         columName.add(header[i]);
  23.       }
  24.         setData(data);
  25.         columnCount = columName.size();
  26.         //System.out.println("le compte est : " +columnCount);
  27.     }
  28.     public void setData(ArrayList data) {
  29.         this.data = data;
  30.         rowCount = data.size();
  31.         fireTableDataChanged();
  32.     }
  33.     public int getColumnCount() {
  34.         return columnCount;
  35.     }
  36.     public int getRowCount() {
  37.         return rowCount;
  38.     }
  39.     public boolean isCellEditable(int arg0, int arg1) {
  40.         return false;
  41.     }
  42.     public Class getColumnClass(int arg0) {
  43.         return String.class;
  44.     }
  45.     public Object getValueAt(int row, int column) {
  46.         ArrayList targetRow = (ArrayList) data.get(row);
  47.         return targetRow.get(column);
  48.     }
  49.     public void setValueAt(Object arg0, int arg1, int arg2) {
  50.     }
  51.     public String getColumnName(int index) {
  52.         return columName.get(index).toString();
  53.     }
  54. //  Managing Listeners
  55. //
  56.     /**
  57.      * Adds a listener to the list that's notified each time a change
  58.      * to the data model occurs.
  59.      *
  60.      * @param   l       the TableModelListener
  61.      */
  62.     public void addTableModelListener(TableModelListener l) {
  63.     listenerList.add(TableModelListener.class, l);
  64.     }
  65.     /**
  66.      * Removes a listener from the list that's notified each time a
  67.      * change to the data model occurs.
  68.      *
  69.      * @param   l       the TableModelListener
  70.      */
  71.     public void removeTableModelListener(TableModelListener l) {
  72.     listenerList.remove(TableModelListener.class, l);
  73.     }
  74.     /**
  75.      * Returns an array of all the table model listeners
  76.      * registered on this model.
  77.      *
  78.      * @return all of this model's <code>TableModelListener</code>s
  79.      *         or an empty
  80.      *         array if no table model listeners are currently registered
  81.      *
  82.      * @see #addTableModelListener
  83.      * @see #removeTableModelListener
  84.      *
  85.      * @since 1.4
  86.      */
  87.     public TableModelListener[] getTableModelListeners() {
  88.         return (TableModelListener[])listenerList.getListeners(
  89.                 TableModelListener.class);
  90.     }
  91. //
  92. //  Fire methods
  93. //
  94.     /**
  95.      * Notifies all listeners that all cell values in the table's
  96.      * rows may have changed. The number of rows may also have changed
  97.      * and the <code>JTable</code> should redraw the
  98.      * table from scratch. The structure of the table (as in the order of the
  99.      * columns) is assumed to be the same.
  100.      *
  101.      * @see TableModelEvent
  102.      * @see EventListenerList
  103.      * @see javax.swing.JTable#tableChanged(TableModelEvent)
  104.      */
  105.     public void fireTableDataChanged() {
  106.         fireTableChanged(new TableModelEvent(this));
  107.     }
  108.     /**
  109.      * Notifies all listeners that the table's structure has changed.
  110.      * The number of columns in the table, and the names and types of
  111.      * the new columns may be different from the previous state.
  112.      * If the <code>JTable</code> receives this event and its
  113.      * <code>autoCreateColumnsFromModel</code>
  114.      * flag is set it discards any table columns that it had and reallocates
  115.      * default columns in the order they appear in the model. This is the
  116.      * same as calling <code>setModel(TableModel)</code> on the
  117.      * <code>JTable</code>.
  118.      *
  119.      * @see TableModelEvent
  120.      * @see EventListenerList
  121.      */
  122.     public void fireTableStructureChanged() {
  123.         fireTableChanged(new TableModelEvent(this, TableModelEvent.HEADER_ROW));
  124.     }
  125.     /**
  126.      * Notifies all listeners that rows in the range
  127.      * <code>[firstRow, lastRow]</code>, inclusive, have been inserted.
  128.      *
  129.      * @param  firstRow  the first row
  130.      * @param  lastRow   the last row
  131.      *
  132.      * @see TableModelEvent
  133.      * @see EventListenerList
  134.      *
  135.      */
  136.     public void fireTableRowsInserted(int firstRow, int lastRow) {
  137.         fireTableChanged(new TableModelEvent(this, firstRow, lastRow,
  138.                              TableModelEvent.ALL_COLUMNS, TableModelEvent.INSERT));
  139.     }
  140.     /**
  141.      * Notifies all listeners that rows in the range
  142.      * <code>[firstRow, lastRow]</code>, inclusive, have been updated.
  143.      *
  144.      * @param firstRow  the first row
  145.      * @param lastRow   the last row
  146.      *
  147.      * @see TableModelEvent
  148.      * @see EventListenerList
  149.      */
  150.     public void fireTableRowsUpdated(int firstRow, int lastRow) {
  151.         fireTableChanged(new TableModelEvent(this, firstRow, lastRow,
  152.                              TableModelEvent.ALL_COLUMNS, TableModelEvent.UPDATE));
  153.     }
  154.     /**
  155.      * Notifies all listeners that rows in the range
  156.      * <code>[firstRow, lastRow]</code>, inclusive, have been deleted.
  157.      *
  158.      * @param firstRow  the first row
  159.      * @param lastRow   the last row
  160.      *
  161.      * @see TableModelEvent
  162.      * @see EventListenerList
  163.      */
  164.     public void fireTableRowsDeleted(int firstRow, int lastRow) {
  165.         fireTableChanged(new TableModelEvent(this, firstRow, lastRow,
  166.                              TableModelEvent.ALL_COLUMNS, TableModelEvent.DELETE));
  167.     }
  168.     /**
  169.      * Notifies all listeners that the value of the cell at
  170.      * <code>[row, column]</code> has been updated.
  171.      *
  172.      * @param row  row of cell which has been updated
  173.      * @param column  column of cell which has been updated
  174.      * @see TableModelEvent
  175.      * @see EventListenerList
  176.      */
  177.     public void fireTableCellUpdated(int row, int column) {
  178.         fireTableChanged(new TableModelEvent(this, row, row, column));
  179.     }
  180.     /**
  181.      * Forwards the given notification event to all
  182.      * <code>TableModelListeners</code> that registered
  183.      * themselves as listeners for this table model.
  184.      *
  185.      * @param e  the event to be forwarded
  186.      *
  187.      * @see #addTableModelListener
  188.      * @see TableModelEvent
  189.      * @see EventListenerList
  190.      */
  191.     public void fireTableChanged(TableModelEvent e) {
  192.     // Guaranteed to return a non-null array
  193.     Object[] listeners = listenerList.getListenerList();
  194.     // Process the listeners last to first, notifying
  195.     // those that are interested in this event
  196.     for (int i = listeners.length-2; i>=0; i-=2) {
  197.         if (listeners[i]==TableModelListener.class) {
  198.         ((TableModelListener)listeners[i+1]).tableChanged(e);
  199.         }
  200.     }
  201.     }
  202.     /**
  203.      * Returns an array of all the objects currently registered
  204.      * as <code><em>Foo</em>Listener</code>s
  205.      * upon this <code>AbstractTableModel</code>.
  206.      * <code><em>Foo</em>Listener</code>s are registered using the
  207.      * <code>add<em>Foo</em>Listener</code> method.
  208.      *
  209.      * <p>
  210.      *
  211.      * You can specify the <code>listenerType</code> argument
  212.      * with a class literal,
  213.      * such as
  214.      * <code><em>Foo</em>Listener.class</code>.
  215.      * For example, you can query a
  216.      * model <code>m</code>
  217.      * for its table model listeners with the following code:
  218.      *
  219.      * <pre>TableModelListener[] tmls = (TableModelListener[])(m.getListeners(TableModelListener.class));</pre>
  220.      *
  221.      * If no such listeners exist, this method returns an empty array.
  222.      *
  223.      * @param listenerType the type of listeners requested; this parameter
  224.      *          should specify an interface that descends from
  225.      *          <code>java.util.EventListener</code>
  226.      * @return an array of all objects registered as
  227.      *          <code><em>Foo</em>Listener</code>s on this component,
  228.      *          or an empty array if no such
  229.      *          listeners have been added
  230.      * @exception ClassCastException if <code>listenerType</code>
  231.      *          doesn't specify a class or interface that implements
  232.      *          <code>java.util.EventListener</code>
  233.      *
  234.      * @see #getTableModelListeners
  235.      *
  236.      * @since 1.3
  237.      */
  238.     public EventListener[] getListeners(Class listenerType) {
  239.         return listenerList.getListeners(listenerType);
  240.         }
  241. }


 
tu appelle un setData() avec un nouveau tableau de tableau d'objet (dans mon exemple g foutu une arraylist d'arraylist, mais tu converti au besoin)
 
tt la farce est faite dans setData, et le fait que tt les méthodes du modèle récupèrent ce qui se passe dans data


---------------
Jubi Photos : Flickr - 500px
n°954135
Huitre
Posté le 16-01-2005 à 21:17:36  profilanswer
 

comment il essaie de recoller les pots cassés lui [:god]

n°954144
Jubijub
Parce que je le VD bien
Posté le 16-01-2005 à 21:21:01  profilanswer
 

non j'ai juste eu le meme pb...autant la réponse de nraynaud me choque pas le connaissant, autant je vois pas pkoi le posteur qui a posté sa question proprement aurait pas droit à une réponse...[:spamafote]


---------------
Jubi Photos : Flickr - 500px
n°954145
nraynaud
lol
Posté le 16-01-2005 à 21:21:27  profilanswer
 

Jubi > y'a pas un DefaultTableModel que tu peux hériter pour faire moins de code ? il fait pas ce qu'il veut ? (réelle question, j'ai la flemme d'aller dans la javadoc)

mood
Publicité
Posté le 16-01-2005 à 21:21:27  profilanswer
 

n°954155
Jubijub
Parce que je le VD bien
Posté le 16-01-2005 à 21:26:19  profilanswer
 

-->réelle réponse : j'en ai pas la moindre idée...c issue d'un projet codé à la va comme je te pousse...
 
Y'a un http://java.sun.com/j2se/1.4.2/doc [...] Model.html
et un  
http://java.sun.com/j2se/1.4.2/doc [...] Model.html
 
dont g pas forcément regardé les différences...(le code en dessous avec les commentaires javadoc, c un copier//coller rapide des sources du Default je crois)
 
==>le truc c de fire un      fireTableDataChanged(); qui lui force le refresh (y faut peut etre un pack() après dans la GUI, mais c pas forcé il me semble)


---------------
Jubi Photos : Flickr - 500px
n°954159
nraynaud
lol
Posté le 16-01-2005 à 21:30:06  profilanswer
 

non, le pack() c'est interdit !
 
oué, j'aime bien avoir les fireBidule et les addMchinListeners tout faits, je me dis qu'il font ça mieux que moi, et qu'il peuvent changer d'avis dans le futur (le stockage des listeners est un point critique dans les performances).

n°954165
Jubijub
Parce que je le VD bien
Posté le 16-01-2005 à 21:33:53  profilanswer
 

-->si pack() est interdit tu fais un refresh comment ? en plus pack ca force les composant à se redessiner avec la taille qu'ils doivent avoir...
 
--> faudrait voir, mon exemple marche peut etre si on sous classe le defaultTableModel et qu'on surcharge tt les op de bases sur le model... surtout le getValueAt


---------------
Jubi Photos : Flickr - 500px
n°954175
nraynaud
lol
Posté le 16-01-2005 à 21:39:35  profilanswer
 

TU ne fais pas de refresh.
 
le TableModel prévient le JTable que ses données ont été modifiées, c'est au JTable d'en tirer les conséquences et d'entreprendre les actions appropriées. Et là ça peut être un bordel complet parce qu'il peut décider de ne redessiner que quelques cellules, de refaire du calcul de layout, etc.
 
C'est du MVC de base.

n°954177
Jubijub
Parce que je le VD bien
Posté le 16-01-2005 à 21:43:01  profilanswer
 

oui mais si le tableau change de dimension suite à ce refresh...ben ta fenetre de base est plus assez grande pour l'afficher correct ??
 
comment tu fais que ton tableau notifie son container que son viewport a changé ? y'a moyen qu'un composant puisse prévenir son conteneur / le gestionnaire de layout de se containeur de redessiner le bouzin ?


---------------
Jubi Photos : Flickr - 500px
n°954179
Jubijub
Parce que je le VD bien
Posté le 16-01-2005 à 21:43:30  profilanswer
 

oops : petit oubli : mon tableModel suppose que tt ce qui y entre c des string (ct le cas dans mon appli)


Message édité par Jubijub le 16-01-2005 à 21:43:39

---------------
Jubi Photos : Flickr - 500px
n°954205
nraynaud
lol
Posté le 16-01-2005 à 21:59:49  profilanswer
 

Jubijub a écrit :

oui mais si le tableau change de dimension suite à ce refresh...ben ta fenetre de base est plus assez grande pour l'afficher correct ??
 
comment tu fais que ton tableau notifie son container que son viewport a changé ? y'a moyen qu'un composant puisse prévenir son conteneur / le gestionnaire de layout de se containeur de redessiner le bouzin ?


 
Il prévient le layoutManager que ses preferedSize ont changé. Le layoutManager se démerde avec son problème.
 
Par contre, je te rappelle qu'en général les JTable sont dans des JScrollPane (et sinon on voit pas les titres des colones) et donc ça peut dégueuler sans pb.
 
les pack() c'est sur les JFrame, et ça sert à changer la taille extérieure de la fenêtre. Si le fait d'ajouter une ligne dans un tableau me modifie le placement et la taille de mes fenetres sur mon bureau, ils ont pas fini de m'entendre gueuler comme un putoi.

n°954428
Jubijub
Parce que je le VD bien
Posté le 17-01-2005 à 11:32:33  profilanswer
 

je dois avouer que dans mon projet g du coder mes tailles de fenetre en dur...parce que sinon la première fois le pack() faisait une fenetre trop petite pour afficher le tableau...et g jamais trouvé pkoi...du coup je forcais une taille en dur, et je rappellais pack, qui bizarrement à la seconde fournée fonctionnait proprement..c moche mais bon :/


---------------
Jubi Photos : Flickr - 500px
n°955755
crozet
Posté le 18-01-2005 à 18:31:42  profilanswer
 

Aïe, ok, ça se complique pas mal. Je croyais que je pouvais coder des trucs simple sans passer par les models. Bon, va falloir que je m'y mette alors.
En tt cas, merci pour toutes ces réponses!

n°955764
nraynaud
lol
Posté le 18-01-2005 à 18:42:54  profilanswer
 

heu, c'est justement plus simple de n'utiliser que des modèles (mais effectivement, pour une raison que j'ignore ça parraît plus compliqué aux débutants)

n°955765
the real m​oins moins
Posté le 18-01-2005 à 18:45:04  profilanswer
 

parce que ça fait un truc de plus à encaisser, tiens.

n°955766
nraynaud
lol
Posté le 18-01-2005 à 18:47:23  profilanswer
 

ben c'est du business et de l'observateur.

n°955767
the real m​oins moins
Posté le 18-01-2005 à 18:48:16  profilanswer
 

ben oui.
des choses pas évidentes pour un débutant.

n°955768
crozet
Posté le 18-01-2005 à 18:49:27  profilanswer
 

Sinon, une petite question subsidiaire. Vous en pensez quoi, j'ai mis cette JInternalFrame (qui contient donc l'affichage du tableau d'objet) dans une classe à part de la JFrame principale. Cette classe est appelée lors de l'initialisation de l'interface. Je la laisse à part pour que ce soit plus lisible, ou je mets toutes les interface dans la meme classe, pour eviter des pbs?

n°956059
beemer
Posté le 19-01-2005 à 08:55:57  profilanswer
 

crozet a écrit :

ou je mets toutes les interface dans la meme classe, pour eviter des pbs?


java c'est pas vb (quoi que meme dans vb t'as un fichier par form)

n°956061
beemer
Posté le 19-01-2005 à 08:57:37  profilanswer
 

nraynaud a écrit :

heu, c'est justement plus simple de n'utiliser que des modèles (mais effectivement, pour une raison que j'ignore ça parraît plus compliqué aux débutants)


je suis pas d'accord, non
c'est plus complique ET ca implique de pisser bcp plus de lignes de code

n°956067
nraynaud
lol
Posté le 19-01-2005 à 09:00:46  profilanswer
 

beemer > tu prends quoi comme dope ?

n°956081
beemer
Posté le 19-01-2005 à 09:16:55  profilanswer
 

nraynaud a écrit :

beemer > tu prends quoi comme dope ?

ca c'est une reponse inteligente  :lol:  
regarde un peu la soluce de Jubijub, ca te semble pas abuse pour rafraichir un tableau? pour quoi pas faire un LabelModel ou TextModel avec 2-3 listeners pour changer le text d'un label ou d'une zone de saisie  :heink:  
 
PS: d'ailleurs parlant de MVC, JTable met a dispo un constructeur (data[][], column[]) mais pas de setData : ca te semble coherent? :D

n°956194
nraynaud
lol
Posté le 19-01-2005 à 11:27:54  profilanswer
 

beemer > tu es vraiment en forme.
 
PS : oui.

n°956210
beemer
Posté le 19-01-2005 à 11:35:24  profilanswer
 

nraynaud a écrit :

beemer > tu es vraiment en forme.
 
PS : oui.


ok gars

n°956227
nraynaud
lol
Posté le 19-01-2005 à 11:46:42  profilanswer
 

Code :
  1. class ArrayTableModel extends AbstractTableModel {
  2.   private Object[][] data = new Object[0][0];
  3.   public int getRowCount() {
  4.     return data.length;
  5.   }
  6.   public int getColumnCount(){
  7.     return data.length > 0 ? data[0].length : 0;
  8.   }
  9.  
  10.   public Object getValueAt(int row, int column) {
  11.     return data[row][column];
  12.   }
  13.   public void setData(Object[][] data) {
  14.     this.data = data;
  15.     fireTableDataChanged();
  16.   }
  17. }


Message édité par nraynaud le 19-01-2005 à 11:46:55
n°956236
beemer
Posté le 19-01-2005 à 11:52:57  profilanswer
 

nraynaud a écrit :

Code :
  1. class ArrayTableModel extends AbstractTableModel {
  2.   private Object[][] data = new Object[0][0];
  3.   public int getRowCount() {
  4.     return data.length;
  5.   }
  6.   public int getColumnCount(){
  7.     return data.length > 0 ? data[0].length : 0;
  8.   }
  9.  
  10.   public Object getValueAt(int row, int column) {
  11.     return data[row][column];
  12.   }
  13.   public void setData(Object[][] data) {
  14.     this.data = data;
  15.     fireTableDataChanged();
  16.   }
  17. }



c'est toujours ca de lignes en plus pour un gars qui veut seulement faire un setData(newdata) sur un tableau qui a toutes les props par defaut...chose qui marche d'ailleurs tres bien la 1ere fois avec le constructeur de data et columnNames
 
si tu veux faire un truc plus chiade je suis d'accord a user et abuser de models et de renderers mais pour un truc simple c'est casse couilles
 
a la limite je dirais rien s'il y avait pas de constructeur Jtable a partir de donnees, mais uniquement des models

n°956321
Jubijub
Parce que je le VD bien
Posté le 19-01-2005 à 13:49:13  profilanswer
 

si tu lisais proprement la doc, tu saurais que setData c une méthode de mon cru, qui n'existe pas dans le default ni dans l'abstract model...
 
 
avec ta méthode, il te faut recréer un modèle à chaque fois, puis le réaffecter...moi je récupère mon modèle, et je le MAJ
 
Je précise aussi que derrière j'avais une base de données Objet, et que j'appellais des rafraichissements fréquement...et je pense que c bcp plus optimisé d'utiliser les méchanismes de refresh du model, qui ne repeint donc que ce qui a réellement changé dans le tableau, plutot que l'overhead de changer de modèle, ce qui implique refaire les modèles de colonnes et de cellule, alors qu'ils ne changent pas...
 
donc ta méthode est sale, et comme l'a montré nraynaud, mon code est long parce que g copié coller des bouts de modèles...mais en extendant proprement abstractModel, ca prend 20 lignes...
 
du coup c pas trop lourd, et c terriblement plus propre, et plus extensible (amuse toi plus en détail avec des tableaux, et tu verras qu'en fait il te faut 3 modèles persos si tu veux faire des trucs hors des sentiers)


---------------
Jubi Photos : Flickr - 500px
n°956363
benou
Posté le 19-01-2005 à 14:19:28  profilanswer
 

c'est vrai aussi que plutot que d'avoir un constructor de JTable avec un Object[][], ca aurait été tout aussi simple qu'il fournisse plutot un ArrayTableModel ...


---------------
ma vie, mon oeuvre - HomePlayer
n°956797
Jubijub
Parce que je le VD bien
Posté le 19-01-2005 à 18:58:18  profilanswer
 

oui c clair...c un peu archaique le Object[][]...
 
ca aurait aussi été intellignet de permettre de changer les données du modèle facilement...mon setData() quoi...

n°956806
the real m​oins moins
Posté le 19-01-2005 à 19:09:19  profilanswer
 

d'un autre coté, dans un vrai cas de figure et pas un test d'étudiant, tu vas rarement avoir un Object[][] pour representer ton domain model... me semble que t'auras une Collection<Bidule> ou une Bidule[] quoi...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°956818
benou
Posté le 19-01-2005 à 19:23:47  profilanswer
 

dans ce cas, autant ne pas mettre le constructeur avec le Object[][] [:spamafote]


---------------
ma vie, mon oeuvre - HomePlayer
n°956826
Jubijub
Parce que je le VD bien
Posté le 19-01-2005 à 19:37:58  profilanswer
 

ce serait mieux avec ArrayList ou Vector...ou meme avec une collection...
 
mais bcp de composant swing ont un constructeur où on peut passer le contenu du modèle avec

n°956834
the real m​oins moins
Posté le 19-01-2005 à 19:54:27  profilanswer
 

benou a écrit :

dans ce cas, autant ne pas mettre le constructeur avec le Object[][] [:spamafote]


bah ça permet de prototyper/tutorer vite fait [:spamafote]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°956881
beemer
Posté le 19-01-2005 à 21:14:10  profilanswer
 

ca existe aussi avec Vector ...  
m'enfin bref, ceux qui ont compris, ont deja compris
 
the real -- : ca cert a quoi de prototyper quoi que ce soit si tu peux pas l'utiliser apres?!
 
jubijub : bcp (la plupart meme) de compos swing permettent aussi de changer les donnes du modele via le viewer


Message édité par beemer le 19-01-2005 à 21:15:22
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  java-sql-interface swing

 

Sujets relatifs
[JAVA] envoyer un message simultanement aux clients[JAVA] Comment faire un wait ?
[Java/SNMP] Convertion MIB/XML[Java]Projet Débutant / faisabilité
[Java][JMF]Modification d'une vidéo[Java] java.util.Random pas si random que ça :(
eclipse et annotations de java 5[Java]Mysql+jtextarea+CR
[JAVA] RMI : Le serveur peut-il exécuter une fonction cliente ?[JAVA] interface graphique avec Swing
Plus de sujets relatifs à : java-sql-interface swing


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR