解答例 - 実習課題3 - 9.基本的なコンポーネント3
(実習課題3)
以下のプログラムを作成しなさい。
- ウィンドウに表示されるコンポーネントはコンボボックスと「表示」ボタン。
- コンボボックスのリストには10以上の都市の名前がリストアップされている事。またコンボボックスは直接編集可能にする事。
- 「表示」ボタンを押すと、その時点で選択されている都市名がコンソールに表示される。もしコンボボックスのリストに含まれていない場合(ユーザが直接編集した場合)は、そのデータをリストに追加する事。
解答例
/** * ComboBoxFrame.java * TECHSCORE Javaユーザインタフェース9章 実習課題3 * * Copyright (c) 2004 Four-Dimensional Data, Inc. */ package com.techscore.ui.chapter9.exercise3; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; public class ComboBoxFrame extends JFrame implements ActionListener { private JComboBox combo; private JButton button; private final String listItem[] = { "Sapporo", "Sendai", "Chiba", "Tokyo", "Shizuoka", "Nagoya", "Osaka", "Okayama", "Hiroshima", "Fukuoka" }; public ComboBoxFrame() { super("ComboBoxFrame"); setDefaultCloseOperation(EXIT_ON_CLOSE); combo = new JComboBox(listItem); combo.setEditable(true); getContentPane().add(combo); button = new JButton("print"); button.addActionListener(this); getContentPane().add(button, BorderLayout.SOUTH); pack(); } public void actionPerformed(ActionEvent e) { String selectedString = (String) combo.getSelectedItem(); System.out.println("--- selected city ---"); System.out.println(selectedString); for (int i = 0; i < combo.getItemCount(); i++) { if (selectedString.equals(combo.getItemAt(i))) { return; } } combo.addItem(selectedString); } public static void main(String args[]) { new ComboBoxFrame().setVisible(true); } }