「Java/swing/サンプル/JList複数選択、単一選択サンプル」の編集履歴(バックアップ)一覧はこちら

Java/swing/サンプル/JList複数選択、単一選択サンプル」(2012/10/19 (金) 01:54:03) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

&ref(swingJList複数選択.png) 複数選択モード(標準) &ref(swingJList単一選択.png) 単一選択モード &ref(swingJList複数選択2.png) 連続した項目なら複数選択できるモード *** サンプルダウンロード &ref(JListSingle.java) *** 解説 JListの複数選択/単一選択サンプルです。 JListの複数選択、単一選択を設定するにはJList.setSelectionModeを使います 設定できるのは以下の3パターンです 複数選択モード(標準) - JList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) 単一選択モード - JList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION) 連続した項目なら複数選択できるモード - JList.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION) *** ソース(単一選択になってます。切り替えはコメント解除でどうぞです) #highlight(java){{ import java.awt.Component; import java.awt.ScrollPane; import java.io.File; import javax.swing.DefaultListCellRenderer; import javax.swing.DefaultListModel; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.ListSelectionModel; import javax.swing.filechooser.FileSystemView; /* * JList複数選択/単一選択サンプル * ・JListの複数選択、単一選択を設定するにはJList.setSelectionModeを使います * ・設定できるのは以下の3パターンです * * 複数選択モード(標準) * ・JList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION) * * 単一選択モード * ・JList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION) * * 連続した項目なら複数選択できるモード * ・JList.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION) */ public class JListSingle extends JFrame { JList list; DefaultListModel model; public JListSingle(String title) { super(title); init(); setDefaultCloseOperation(EXIT_ON_CLOSE); setBounds(100, 100, 300, 200); setVisible(true); } private void init() { // 表示データ作成 File dir = new File("C:\\"); File[] childs = dir.listFiles(); // リストモデルを生成 model = new DefaultListModel(); // 表示データをリストモデルに設定 for (File file : childs) { model.addElement(file); } // リストモデルを使ってJListを作成 list = new JList(model); // MULTIPLE_INTERVAL_SELECTION = 複数選択モード(標準) // list.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); // SINGLE_SELECTION = 一個だけ選択できるモード list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // SINGLE_INTERVAL_SELECTION = 連続した項目なら複数選択できるモード // list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); // リストモデルは通常スクロールペインを使います。 ScrollPane sp = new ScrollPane(); sp.add(list); // 自作のセルレンダラーを設定します list.setCellRenderer(new FileListCellRenderer()); add(sp); } public static void main(String[] args) { new JListSingle("JList複数選択/単一選択サンプル"); } /** * JList用のセルセンダラー */ class FileListCellRenderer extends DefaultListCellRenderer { FileSystemView fs = FileSystemView.getFileSystemView(); public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); // valueがFileクラスの場合、テキストとアイコンを設定します。 if (value instanceof File) { File f = (File) value; setText(fs.getSystemDisplayName(f)); setIcon(fs.getSystemIcon(f)); } return this; } } } }}

表示オプション

横に並べて表示:
変化行の前後のみ表示: