目次へ

解答例 - 実習課題5 - 9.基本的なコンポーネント3

(実習課題5)

実習課題4のプログラムを改良しなさい。

  • マウスカーソルがプログレスバーの上に来たとき、ツールチップを表示するようにする事。
  • 表示する値は、その時のプログレスバーの値。
  • (ヒント)「JProgressBar」を継承したクラスを作成し、「getToolTipText」メソッドをオーバーライドする事。

解答例

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

package com.techscore.ui.chapter9.exercise5;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.Timer;
import javax.swing.ToolTipManager;

class ProgressBarFrame2 extends JFrame implements ActionListener {

    private HelpProgressBar bar;
    private JButton startButton, stopButton;
    private Timer t;

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

        t = new Timer(1000, this);

        bar = new HelpProgressBar();
        getContentPane().add(bar, BorderLayout.CENTER);

        JPanel panel = new JPanel(new GridLayout(1, 2));
        getContentPane().add(panel, BorderLayout.SOUTH);

        startButton = new JButton("start");
        startButton.addActionListener(this);
        panel.add(startButton);

        stopButton = new JButton("stop");
        stopButton.addActionListener(this);
        panel.add(stopButton);

        pack();
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == startButton) {
            bar.setValue(0);
            t.start();
        } else if (e.getSource() == stopButton) {
            t.stop();
        } else if (e.getSource() == t) {
            bar.setValue(bar.getValue() + 10);
            if (bar.getValue() >= 100) {
                bar.setValue(100);
                t.stop();
            }
        }
    }

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

    class HelpProgressBar extends JProgressBar {

        public HelpProgressBar() {
            ToolTipManager.sharedInstance().registerComponent(this);
        }

        public String getToolTipText() {
            return (String.valueOf(getValue()));
        }

    }

}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp