IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

[JTable] dimension trop grande


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Sp4ce
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 81
    Par défaut [JTable] dimension trop grande
    Bonjour,

    j'utilise une JTable pour mon application, mais celle-ci est beaucoup trop grande et je n'arrive pas à la dimensionner comme j'ai envie... pourtant je met un setsize, (de toute façon que j'en mette ou pas ça change rien)

    code exectable ci-dessus

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    public class ServerPanel extends JPanel {
    	static final long serialVersionUID = 1L;
     
    	private JTextPane jTextPane;
    	private JTable jTable;
     
    	public ServerPanel(){
    		init();
    	}
     
    	private void init(){
    		this.setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
     
            	String[] columnNames = {"Client","Connection","Lag","nb Human"};
            	Object[][] data = {{"localhost", "flute","00 ms", new Integer(5)}};
    	        jTable = new JTable(data,columnNames);
    	        JScrollPane jScrollPane = new JScrollPane(jTable);
    	        jScrollPane.setSize(800,250);
    	        jTable.setFillsViewportHeight(true);
    		this.add(jScrollPane);
     
            	jTextPane = new JTextPane();
    	        jTextPane.setEditable(false);
    	        JScrollPane jScrollPane1 = new JScrollPane(jTextPane);
    	        jScrollPane1.setSize(800,250);
    	        this.add(jScrollPane1);
    	}
     
    	public static void main (String[] arg){
    		JFrame frame = new JFrame();
    		ServerPanel serverPanel = new ServerPanel();
    		frame.setContentPane(serverPanel);
    		frame.setSize(800,500);
    		frame.setVisible(true);
    	}
    }
    moi je voudrais que les deux parties aient la même taille et ça m'énerve !!! pourquoi dans java ya des fonctions qui servent à rien, pourquoi un setSize ne marche pas ???

  2. #2
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    Avant tout, si tu veux que les 2 composants aient la même taille, un GridLayout sera peut-être mieux adapté.

    Ensuite, setSize ne marche quasiment jamais. Ce n'est pas une méthode destinée à être appelée par le programmeur, mais par l'EDT.

    En fait, lorsque le Container est modifié (ajout d'un composant, redimensionnement, appel à revalidate(), ...) le Container est mis en page ("laid out" en anglais). Lors de cette opération, le LayoutManager (BoxLayout dans ton cas) tient compte :
    - de la taille du conteneur
    - du nombre de composants à l'intérieur
    - des options d'ajout (BorderLayout.NORTH par exemple)
    - des tailles minimum, préférées, et maximum des composants
    En fonction de ça, il décide de la taille et la position à affecter aux composants et appelle setSize.

    Conclusion : il ne sert à rien d'appeler setSize sur un composant, puisque la dimension que tu donnes sera écrasée par le LayoutManager. Il est plus utile d'appeler setPreferredSize, quoi que cela dépende du layout. En l'occurrence, avec un BoxLayout, setPreferredSize marchera très bien.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

Discussions similaires

  1. JTable trop grand?
    Par nicotine002 dans le forum Composants
    Réponses: 5
    Dernier message: 31/01/2006, 17h09
  2. [JTable] dimension
    Par Ikki dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 08/12/2004, 12h45
  3. modélisation d'une base : table trop grande
    Par Shabata dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 22/11/2004, 11h44
  4. [JTable] Dimension des colonnes
    Par Katyucha dans le forum Composants
    Réponses: 4
    Dernier message: 04/11/2004, 16h53
  5. Surface trop grande
    Par Black_Daimond dans le forum DirectX
    Réponses: 1
    Dernier message: 18/01/2003, 03h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo