こんにちは、配列内のチェックボックスリストのすべてのチェック項目インデックスを取得しようとしています。しかし、どうやらメソッドgetCheckBoxListSelectedIndices(); 空の配列を返しています
package cct.karim;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import com.jidesoft.swing.CheckBoxList;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
/**
*
* @author beastieux
*/
public class E_JCheckListBox extends JFrame implements ActionListener {
protected JLabel loglabel;
private CheckBoxList List;
public E_JCheckListBox()
{
super("Select RFQs to Export");
loglabel=new JLabel("Log: .");
List=new CheckBoxList();
CheckBoxList List = new CheckBoxList();
JScrollPane scp=new JScrollPane();
DefaultListModel lmdlEjemplo=new DefaultListModel();
lmdlEjemplo.addElement(" Item 0 ");
lmdlEjemplo.addElement(" Item 1 ");
lmdlEjemplo.addElement(" Item 2 ");
lmdlEjemplo.addElement(" Item 3 ");
lmdlEjemplo.addElement(" Item 4 ");
lmdlEjemplo.addElement(" Item 5 ");
lmdlEjemplo.addElement(" Item 6 ");
lmdlEjemplo.addElement(" Item 7 ");
lmdlEjemplo.addElement(" Item 8 ");
lmdlEjemplo.addElement(" Item 9 ");
List.setModel(lmdlEjemplo);
scp.add(List);
this.add(scp);
scp.getViewport().add(List);
getContentPane().setLayout(new FlowLayout());
this.setSize(300, 300);
scp.setSize(300, 350);
JPanel p = new JPanel();
p.setSize(500, 500);
p.setLayout(new BorderLayout());
p.add(scp, BorderLayout.CENTER);
p.add(loglabel, BorderLayout.SOUTH);
p.setBorder(new TitledBorder(new EtchedBorder(),
"Please select options:") );
getContentPane().add(p);
JButton k= new JButton("Export");
k.addActionListener(this);
k.setMaximumSize(new Dimension(1, 1));
add(k);
// pack();
setVisible(true);
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String args[]) {
E_JCheckListBox obj = new E_JCheckListBox();
obj.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
int k[]=List.getCheckBoxListSelectedIndices();
System.out.println(k[0]);
}
}
これは私が得た例外です:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0
at cct.karim.E_JCheckListBox.actionPerformed(E_JCheckListBox.java:92)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
GUIプログラミングに慣れていないので、何かが足りませんか?