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

