目次へ

解答例 - 実習課題1 - 16.内部フレームとデスクトップペイン

(実習課題1)

以下のプログラムを作成しなさい。

  • ウィンドウに含まれるコンポーネントはデスクトップペインとメニュー。
  • メニューで指定すると、デスクトップペインに内部フレームが表示されるようにする事。
  • 表示する内部フレームに上限は設けない。

解答例

/**
 * SimpleMdi.java
 * TECHSCORE Javaユーザインタフェース16章 実習課題1
 *
 * Copyright (c) 2004 Four-Dimensional Data, Inc.
 */

package com.techscore.ui.chapter16.exercise1;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class SimpleMdi extends JFrame implements ActionListener {

    private JMenuItem addMenu;
    private JDesktopPane desktopPane;

    private int numOfInternal;

    public SimpleMdi() {
        super("SimpleMdi");
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        //メニュー
        JMenu menu = new JMenu("File");
        addMenu = new JMenuItem("add");
        addMenu.addActionListener(this);
        menu.add(addMenu);
        JMenuBar menuBar = new JMenuBar();
        menuBar.add(menu);
        setJMenuBar(menuBar);

        //JDesktopPane
        desktopPane = new JDesktopPane();
        desktopPane.setPreferredSize(new Dimension(600, 400));
        getContentPane().add(desktopPane);

        pack();

        numOfInternal = 0;
    }

    public void actionPerformed(ActionEvent event) {
        JInternalFrame internal = new JInternalFrame("internal frame");
        desktopPane.add(internal);
        internal.reshape(numOfInternal * 10, numOfInternal * 10, 200, 200);
        internal.setVisible(true);

        numOfInternal++;
        if (numOfInternal > 20) {
            numOfInternal = 0;
        }
    }

    public static void main(String args[]) {
        new SimpleMdi().setVisible(true);
    }

}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp