解答例 - 実習課題2 - 11.ダイアログ
(実習課題2)
実習課題1のプログラムを改良しなさい。
- 追加メニューを押したときに表示されるダイアログを「JOptionPane」で作成する事。
- 入力された追加データが空白である場合、エラーダイアログを表示する事。
- (ヒント)「JOptionPane」の「showInputDialog」と「showMessageDialog」メソッドを使用する。
解答例
/**
* OptionPane.java
* TECHSCORE Javaユーザインタフェース11章 実習課題2
*
* Copyright (c) 2004 Four-Dimensional Data, Inc.
*/
package com.techscore.ui.chapter11.exercise2;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
public class OptionPane extends JFrame implements ActionListener {
private JMenuItem addMenuItem;
private JList list;
private DefaultListModel listModel;
public OptionPane() {
super("OptionPane");
setDefaultCloseOperation(EXIT_ON_CLOSE);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu cityMenu = new JMenu("edit");
menuBar.add(cityMenu);
String listItem[] =
{ "Sapporo", "Sendai", "Chiba", "Tokyo", "Shizuoka", "Nagoya", "Osaka", "Okayama", "Hiroshima", "Fukuoka" };
listModel = new DefaultListModel();
for (int i = 0; i < listItem.length; i++) {
listModel.addElement(listItem[i]);
}
list = new JList(listModel);
getContentPane().add(new JScrollPane(list));
addMenuItem = new JMenuItem("add");
addMenuItem.addActionListener(this);
cityMenu.add(addMenuItem);
pack();
}
public void actionPerformed(ActionEvent event) {
String str = JOptionPane.showInputDialog("追加する都市名を入力して下さい。");
if (str == null) { // キャンセルボタンを押したとき
return;
} else if (str.equals("")) { // 入力が無かったとき
JOptionPane.showMessageDialog(null, "都市名が入力されていません。", "alert", JOptionPane.ERROR_MESSAGE);
} else { // 正しく入力されていたとき
listModel.addElement(str);
}
}
public static void main(String args[]) {
new OptionPane().setVisible(true);
}
}

