import java.awt.*; import javax.swing.*; import javax.swing.event.*; import java.awt.event.*; import java.util.*; public class Test { public static void main (String[] args) { Win win = new Win("Test Window"); } } /*******************/ /* クラスWinの定義 */ /*******************/ class Win extends JFrame implements ChangeListener { JTextField tx; JSlider sl; /******************/ /* コンストラクタ */ /******************/ Win (String name) { // Frameクラスのコンストラクタ(Windowのタイトルを引き渡す) super(name); // レイアウトの変更 Container cp = getContentPane(); cp.setLayout(new FlowLayout()); Font f = new Font("MS 明朝", Font.PLAIN, 20); // ラベルの付加 JLabel lb = new JLabel("スライダー"); cp.add(lb); // スライダーの付加 sl = new JSlider(JSlider.HORIZONTAL, 0, 100, 0); sl.setMajorTickSpacing(20); sl.setMinorTickSpacing(5); sl.setPaintTicks(true); sl.setPaintLabels(true); sl.setSnapToTicks(true); sl.addChangeListener(this); cp.add(sl); // テキストフィールドの付加 tx = new JTextField("0", 4); tx.setFont(f); cp.add(tx); // Windowの大きさ setSize(350, 100); // ウィンドウを表示 setVisible(true); // イベントアダプタ addWindowListener(new WinEnd()); } /******************************/ /* 上,左,下,右の余白の設定 */ /******************************/ public Insets getInsets() { return new Insets(35, 10, 10, 10); } /****************************************/ /* スライダーの位置が変化したときの処理 */ /****************************************/ public void stateChanged(ChangeEvent e) { if (e.getSource() == sl) { tx.setText("" + sl.getValue()); } } /************/ /* 終了処理 */ /************/ class WinEnd extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } }