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 :

JScrollPane ne fonctionne pas avec des ajouts automatiques


Sujet :

Composants Java

  1. #1
    Membre habitué
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Points : 197
    Points
    197
    Par défaut JScrollPane ne fonctionne pas avec des ajouts automatiques
    Bonjour,

    J'ai un code très simple qui ajoute des JButton à un JPanel qui est dans un JScrollPane.

    La taille du JPanel est plus grande que ce qui est affiché et le JScrollPane n'apparaît pas pour permettre de faire défiler le JPanel.

    Le code est plutôt simple, mais je n'arrive pas à comprendre ce qui ne va pas. J'ai bien mis le JPanel directement lors de la construction du JScrollPane.

    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
    38
    39
    40
    41
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
     
    public class ScrollTest extends JFrame
    {
    	private static final long serialVersionUID = 3360178622476057952L;
     
    	public ScrollTest (String s)
    	{
    		super(s);
    		this.setSize(800, 600);
     
     
     
    		JPanel panel = new JPanel();
    		panel.setLayout(null);
    		for (int i = 0; i < 15; i++)
    		{
    			JButton bouton = new JButton("HUM " + i);
    			bouton.setLocation(0, i * 50);
    			bouton.setSize(100, 50);
    			panel.add(bouton);
    		}
     
    		JScrollPane scroll = new JScrollPane(panel);
    		this.add(scroll);
     
     
     
    		this.setVisible(true);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setLocationRelativeTo(null);
    	}
     
    	public static void main(String[] args)
    	{
    		new ScrollTest("test ScrollPane");
    	}
    }
    D'avance merci pour votre aide.



    xenos

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Solution simple et très très efficace. Et puis vachement plus propre aussi.

    Il te faut oublier le concept de NullLayout et utiliser des layouts un tant soit peu corrects et bien foutus. Ca te donnera un code moins crade, une interface aux alignements correctement foutus, ayant plus d'équilibre et se redimensionnant de façon correcte. Et puis gratuitement en plus tu auras des JScrollPanes qui fonctionneront de façon correcte.

    Par exemple voici un excellent layout, relativement aisé à comprendre et tout à la fois très puissant: le FormLayout

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/03/2014, 11h52
  2. sort by ne fonctionne pas avec des subtables
    Par ekremyilmaz dans le forum JSF
    Réponses: 1
    Dernier message: 27/07/2010, 13h17
  3. Réponses: 4
    Dernier message: 05/06/2008, 18h14
  4. [Make] ne fonctionne pas avec des .cpp
    Par Jean_Benoit dans le forum Systèmes de compilation
    Réponses: 3
    Dernier message: 19/09/2006, 21h32
  5. [VBA-Excel] Tri de listview ne fonctionne pas avec des nombres à virgule
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/09/2006, 15h32

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