Mon JScrollPane ne veut pas de mon JPanel
bonjour j'ai un petit problème d'illégalArgumentException :
Code:
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 53 54 55 56 57 58 59 60
|
import javax.swing.JCheckBox;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class AlphaListenerScrollPanel extends JScrollPane{
JCheckBox[] _list;
AlphaListenerScrollPanel(String[] list)
{
super();
_list = new JCheckBox[list.length];
for (int i = 0; i< list.length; i++)
{
JCheckBox jc = new JCheckBox(list[i],true);
_list[i] = jc;
}
this.add(new AlphaPanel(_list));
}
private class AlphaPanel extends JPanel
{
AlphaPanel(JCheckBox[] list)
{
super();
this.setLayout(null);
int pos = 0;
for (int i =0 ; i< list.length ; i++)
{
list[i].setBounds(0,pos , this.getWidth(), 20);
this.add(list[i]);
pos = pos + 20;
}
}
}
public String[] getSelectedString()
{
int count = 0;
for (int i = 0 ; i< _list.length; i++)
{
if (_list[i].isSelected()) count++;
}
String[] selection = new String[count];
count = 0;
for (int i = 0 ; i< _list.length; i++)
{
if (_list[i].isSelected())
{
selection[count] = _list[i].getText();
count++;
}
}
return selection;
}
} |
et ma petit erreur :
Exception during event dispatch:
java.lang.IllegalArgumentException
at javax.swing.ScrollPaneLayout.addLayoutComponent(libgcj.so.7rh)
at java.awt.Container.addImpl(libgcj.so.7rh)
at java.awt.Container.add(libgcj.so.7rh)
at AlphaListenerScrollPanel.<init>(AlphaListenerScrollPanel.java:21)
at SelectionPanel.<init>(SelectionPanel.java:16)
at MainFrame$PushListener.actionPerformed(MainFrame.java:43)
at javax.swing.AbstractButton.fireActionPerformed(libgcj.so.7rh)
at javax.swing.AbstractButton$1.actionPerformed(libgcj.so.7rh)
at javax.swing.DefaultButtonModel.fireActionPerformed(libgcj.so.7rh)
at javax.swing.DefaultButtonModel.setPressed(libgcj.so.7rh)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(libgcj.so.7rh)
at java.awt.Component.processMouseEvent(libgcj.so.7rh)
at java.awt.Component.processEvent(libgcj.so.7rh)
at java.awt.Container.processEvent(libgcj.so.7rh)
at java.awt.Component.dispatchEventImpl(libgcj.so.7rh)
at java.awt.Container.dispatchEventImpl(libgcj.so.7rh)
at java.awt.Component.dispatchEvent(libgcj.so.7rh)
at java.awt.LightweightDispatcher.handleMouseEvent(libgcj.so.7rh)
at java.awt.LightweightDispatcher.dispatchEvent(libgcj.so.7rh)
at java.awt.Container.dispatchEventImpl(libgcj.so.7rh)
at java.awt.Window.dispatchEventImpl(libgcj.so.7rh)
at java.awt.Component.dispatchEvent(libgcj.so.7rh)
at java.awt.EventQueue.dispatchEvent(libgcj.so.7rh)
at java.awt.EventDispatchThread.run(libgcj.so.7rh)
ligne 21 ===> this.add(new AlphaPanel(_list));
une idée (un truc que j'ai surement mal fait ...)