TOP →
Java →
Swing →
JList → This Page
JList@Swing サンプル07
概要
Java -
Swing -
JList のサンプルです。
・項目の追加
・項目の削除
・項目の変更
解説
リスト項目の追加、削除、変更を行うサンプルです。
DefaultListModel クラス
メソッド | 内容 |
add(int index, Object element) |
項目を指定インデックスに追加 |
addElement(Object obj) |
項目を末尾に追加 |
clear() |
全項目の削除 |
remove(int index) |
指定インデックスの項目削除 |
removeRange(int fromIndex, int toIndex) |
指定インデックス範囲の項目削除 |
set(int index, Object element) |
インデックスの項目値を変更 |
サンプルイメージ
サンプルソース
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.JTextField;
import javax.swing.border.BevelBorder;
/**
* JList サンプル07
* ・項目の追加
* ・項目の削除
* ・項目の変更
*
* @author みっちー
*/
public class JList07 extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
/** リストモデル */
private DefaultListModel<String> listModel = null;
/** リスト */
private JList<String> list = null;
/** テキスト */
private JTextField text = null;
/** ラベル */
private JLabel label = null;
/**
* 開始メソッド
*
* @param args パラメータ
*/
public static void main(String[] args) {
JList07 frame = new JList07();
// 閉じるボタンをクリックされた場合の動作を設定
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// ウインドウのタイトルを設定
frame.setTitle("JList サンプル07");
// フレームの X座標、Y座標、幅、高さを設定
frame.setBounds(100, 200, 380, 220);
// フレームを表示(これをしないと透明のフレームが立ち上がってしまう)
frame.setVisible(true);
}
/**
* コンストラクタ
*/
public JList07() {
// パネルを作成
JPanel panelBase = new JPanel();
// リストモデル
listModel = new DefaultListModel<String>();
listModel.addElement("AAAAA");
listModel.addElement("BBBBB");
listModel.addElement("CCCCC");
// リストを作成
list = new JList<String>(listModel);
// スクロールを設定
JScrollPane scrollPane = new JScrollPane();
scrollPane.getViewport().setView(list);
scrollPane.setPreferredSize(new Dimension(80, 100));
// テキストを作成
text = new JTextField();
text.setPreferredSize(new Dimension(80, 20));
// ラベルを作成
label = new JLabel();
label.setPreferredSize(new Dimension(160, 20));
label.setBorder(new BevelBorder(BevelBorder.LOWERED));
// ボタンを作成
JButton button1 = new JButton("addElement");
JButton button2 = new JButton("add");
JButton button3 = new JButton("remove");
JButton button4 = new JButton("removeRange");
JButton button5 = new JButton("allClear");
JButton button6 = new JButton("change");
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(this);
button5.addActionListener(this);
button6.addActionListener(this);
// リスト、テキスト、ラベル、ボタンを追加
panelBase.add(scrollPane);
panelBase.add(text);
panelBase.add(label);
panelBase.add(button1);
panelBase.add(button2);
panelBase.add(button3);
panelBase.add(button4);
panelBase.add(button5);
panelBase.add(button6);
// パネルを追加
getContentPane().add(panelBase);
}
/**
* イベント
*
* @param e イベント
*/
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
label.setText("");
if (cmd.equals("addElement")) {
// 末尾に追加
if (text.getText().equals("")) {
label.setText("テキストが空です");
return;
}
listModel.addElement(text.getText());
} else if (cmd.equals("add")) {
if (text.getText().equals("")) {
label.setText("テキストが空です");
return;
}
if (!list.isSelectionEmpty()) {
// 選択行の次に追加
listModel.add(list.getSelectedIndex() + 1, text.getText());
} else {
label.setText("未選択です");
}
} else if (cmd.equals("remove")) {
// 選択行を削除
if (!list.isSelectionEmpty()) {
listModel.remove(list.getSelectedIndex());
} else {
label.setText("未選択です");
}
} else if (cmd.equals("removeRange")) {
// 選択範囲を削除
if (!list.isSelectionEmpty()) {
listModel.removeRange(list.getMinSelectionIndex(), list.getMaxSelectionIndex());
} else {
label.setText("未選択です");
}
} else if (cmd.equals("allClear")) {
// 全て削除
listModel.clear();
} else if (cmd.equals("change")) {
// 選択項目の変更
if (text.getText().equals("")) {
label.setText("テキストが空です");
return;
}
if (!list.isSelectionEmpty()) {
listModel.set(list.getSelectedIndex(), text.getText());
} else {
label.setText("未選択です");
}
}
}
}
サンプルソースのダウンロード
ソースのダウンロード(Eclipse用のプロジェクトファイルも同梱)
更新履歴
2016/05/13 Windows 8.1 + Java 7 環境で全体を見直し
2008/01/25 新規作成
TOP →
Java →
Swing →
JList → This Page