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