解答例 - 実習課題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); } }