2010-05-17 10 views
2

J'ai un JScrollPane dans lequel je veux placer une liste de boutons radio et d'étiquettes. Mon problème est que le panneau ne défile pas, je suppose que c'est parce que je n'ai pas défini de fenêtre d'affichage, mais comment puis-je le définir quand j'ai plusieurs composants? Mon code ressemble à ceci:java: comment faire panneau srollable avec bouton radio et étiquettes à l'intérieur?

JScrollPane panel = new JScrollPane(); 
JRadioButton myRadio; 
JLabel myLabel; 
for(int i = 0; i<100; i++){ 
    myRadio = new JRadioButton(); 
    myLabel = new JLabel("text"); 
    panel.add(myRadio); 
    panel.add(myLabel); 
} 

Merci.

Répondre

4

Il est préférable de placer vos boutons et vos étiquettes dans un emballage JPanel, puis de les déposer dans un JScrollPane.

essayez ceci:

JPanel panel = new JPanel(new GridLayout(0,1)); 
    JRadioButton myRadio; 
    for(int i = 0; i<100; i++){ 
     myRadio = new JRadioButton("text" + i); 
     panel.add(myRadio); 
    } 
    JScrollPane scrollPane = new JScrollPane(panel); 

assurez-vous de regarder dans ButtonGroup aussi bien. ButtonGroups vous permet d'appliquer la contrainte de sélection unique commune aux boutons radio.

+0

J'ai essayé de définir un JPanel comme viewport mais cela ne fonctionne pas car ce n'est pas un composant. – Lucia

+0

JPanel est certainement un composant. Essayez le code ci-dessus ou "JScrollPane.setViewportView (myJPanel)". – DJClayworth