メソッド | 内容 |
---|---|
getSize() | 項目数を取得 |
getElementAt(int index) | 指定インデックスの項目値を取得 |
メソッド | 内容 |
---|---|
getMaxSelectionIndex() | 選択項目の最大インデックスを取得 |
getMinSelectionIndex() | 選択項目の最小インデックスを取得 |
getSelectedIndex() | 最初に選択された項目のインデックスを取得 未選択時は -1 を返す |
getSelectedIndices() | 全選択項目のインデックス配列を取得 |
getSelectedValue() | 最初に選択された項目の値を取得 未選択時は null を返す |
getSelectedValues() | 全選択項目の配列を取得 |
isSelectionEmpty() | リスト項目の選択有無を取得 |
import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.DefaultListModel; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.border.BevelBorder; /** * JList サンプル06 * ・項目数の取得 * ・選択項目の取得(1つ) * ・選択項目の取得(範囲) * ・選択項目の取得(複数) * ・全項目の取得 * * @author みっちー */ public class JList06 extends JFrame implements ActionListener { private static final long serialVersionUID = 1L; /** リストモデル */ private DefaultListModel<String> listModel = null; /** リスト */ private JList<String> list = null; /** ラベル */ private JLabel label = null; /** * 開始メソッド * * @param args パラメータ */ public static void main(String[] args) { JList06 frame = new JList06(); // 閉じるボタンをクリックされた場合の動作を設定 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ウインドウのタイトルを設定 frame.setTitle("JList サンプル06"); // フレームの X座標、Y座標、幅、高さを設定 frame.setBounds(100, 200, 400, 200); // フレームを表示(これをしないと透明のフレームが立ち上がってしまう) frame.setVisible(true); } /** * コンストラクタ */ public JList06() { // パネルを作成 JPanel panelBase = new JPanel(); // リストモデル listModel = new DefaultListModel<String>(); listModel.addElement("AAAAA"); listModel.addElement("BBBBB"); listModel.addElement("CCCCC"); listModel.addElement("DDDDD"); listModel.addElement("EEEEE"); // リストを作成 list = new JList<String>(listModel); // スクロールを設定 JScrollPane scrollPane = new JScrollPane(); scrollPane.getViewport().setView(list); scrollPane.setPreferredSize(new Dimension(80, 100)); // ラベルを作成 label = new JLabel(); label.setPreferredSize(new Dimension(250, 20)); label.setBorder(new BevelBorder(BevelBorder.LOWERED)); // ボタンを作成 JButton button1 = new JButton("getSize"); JButton button2 = new JButton("getIndex"); JButton button3 = new JButton("getIndices"); JButton button4 = new JButton("getRange"); JButton button5 = new JButton("getValue"); JButton button6 = new JButton("getValues"); JButton button7 = new JButton("getAllValues"); button1.addActionListener(this); button2.addActionListener(this); button3.addActionListener(this); button4.addActionListener(this); button5.addActionListener(this); button6.addActionListener(this); button7.addActionListener(this); // リスト、ラベル、ボタンを追加 panelBase.add(scrollPane); panelBase.add(label); panelBase.add(button1); panelBase.add(button2); panelBase.add(button3); panelBase.add(button4); panelBase.add(button5); panelBase.add(button6); panelBase.add(button7); // パネルを追加 getContentPane().add(panelBase); } /** * イベント * * @param e イベント */ public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); label.setText(""); if (cmd.equals("getSize")) { // 項目数の取得 label.setText("項目数=" + listModel.getSize()); } else if (cmd.equals("getIndex")) { // 選択インデックスの取得(1つ) if (!list.isSelectionEmpty()) { label.setText("選択Index=" + list.getSelectedIndex()); } else { label.setText("未選択です"); } } else if (cmd.equals("getIndices")) { // 選択インデックスの取得(複数) if (!list.isSelectionEmpty()) { StringBuffer sb = new StringBuffer("選択Index="); int[] selectedIndices = list.getSelectedIndices(); for (int i = 0; i < selectedIndices.length; i++) { if (i != 0) { sb.append(","); } sb.append("" + selectedIndices[i]); } label.setText(sb.toString()); } else { label.setText("未選択です"); } } else if (cmd.equals("getRange")) { // 選択インデックスの取得(範囲) if (!list.isSelectionEmpty()) { label.setText("選択Index=" + list.getMinSelectionIndex() + "〜" + list.getMaxSelectionIndex()); } else { label.setText("未選択です"); } } else if (cmd.equals("getValue")) { // 選択項目値の取得 if (!list.isSelectionEmpty()) { label.setText("選択項目=" + (String)list.getSelectedValue()); } else { label.setText("未選択です"); } } else if (cmd.equals("getValues")) { // 選択項目値の取得(範囲) if (!list.isSelectionEmpty()) { StringBuffer sb = new StringBuffer("選択項目="); Object[] selectedValues = list.getSelectedValues(); for (int i = 0; i < selectedValues.length; i++) { if (i != 0) { sb.append(","); } sb.append((String)selectedValues[i]); } label.setText(sb.toString()); } else { label.setText("未選択です"); } } else if (cmd.equals("getAllValues")) { // 全項目値の取得 StringBuffer sb = new StringBuffer("全項目="); for (int i = 0; i < listModel.getSize(); i++) { if (i != 0) { sb.append(","); } sb.append((String)listModel.getElementAt(i)); } label.setText(sb.toString()); } } }
2016/05/13 Windows 8.1 + Java 7 環境で全体を見直し 2008/01/25 新規作成