目次へ

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

}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp
  • シナジーマーケティング研究開発グループブログ