解答例 - 実習課題1 - 9.基本的なコンポーネント3
(実習課題1)
以下のプログラムを作成しなさい。
- ウィンドウに表示されるコンポーネントはリストと「表示」ボタン。
- リストには10以上の都市の名前がリストアップされている事。
- 「表示」ボタンを押すと、その時点で選択されている都市名がコンソールに表示される。
- リストとのデータの受け渡しは配列で行う事。
- (ヒント)「getSelectedIndices」メソッドを使う。
解答例
/**
* ListFrame.java
* TECHSCORE Javaユーザインタフェース9章 実習課題1
*
* Copyright (c) 2004 Four-Dimensional Data, Inc.
*/
package com.techscore.ui.chapter9.exercise1;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
public class ListFrame extends JFrame implements ActionListener {
private JList list;
private JButton button;
private final String listItem[] =
{ "Sapporo", "Sendai", "Chiba", "Tokyo", "Shizuoka", "Nagoya", "Osaka", "Okayama", "Hiroshima", "Fukuoka" };
public ListFrame() {
super("ListFrame");
setDefaultCloseOperation(EXIT_ON_CLOSE);
list = new JList(listItem);
getContentPane().add(list);
button = new JButton("print");
button.addActionListener(this);
getContentPane().add(button, BorderLayout.SOUTH);
pack();
}
public void actionPerformed(ActionEvent e) {
int selectedIndices[] = list.getSelectedIndices();
System.out.println("--- selected cities ---");
for (int i = 0; i < selectedIndices.length; i++) {
System.out.println(listItem[selectedIndices[i]]);
}
}
public static void main(String args[]) {
new ListFrame().setVisible(true);
}
}

