目次へ

解答例 - 実習課題4 - 8.基本的なコンポ−ネント2

(実習課題4)

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

  • ウィンドウに含まれるコンポーネントはスライダーとラベル。
  • ラベルにはスライダーの現在値が表示されるようにする事。
  • スライダーを動かすと、ラベルの値もそれに合わせて変化するようにする事。
  • ラベルには目盛りを表示する事。
  • (ヒント)「ChangeListener」を利用する。

解答例

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

package com.techscore.ui.chapter8.exercise4;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JSlider;
import javax.swing.SwingConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class SliderFrame extends JFrame implements ChangeListener {

    private JLabel label;
    private JSlider slider;

    static final int MIN_VALUE = 0;
    static final int MAX_VALUE = 100;

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

        slider = new JSlider(SwingConstants.HORIZONTAL, MIN_VALUE, MAX_VALUE, MIN_VALUE);
        slider.addChangeListener(this);
        label = new JLabel("", SwingConstants.CENTER);
        setLabelValue();
        getContentPane().add(label);
        getContentPane().add(new JLabel(String.valueOf(MIN_VALUE)), BorderLayout.WEST);
        getContentPane().add(new JLabel(String.valueOf(MAX_VALUE), SwingConstants.RIGHT), BorderLayout.EAST);
        getContentPane().add(slider, BorderLayout.SOUTH);
        pack();
    }

    private void setLabelValue() {
        label.setText(String.valueOf(slider.getValue()));
    }

    public void stateChanged(ChangeEvent e) {
        setLabelValue();
    }

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

}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp