LotosLabo

プログラミング技術とか気になった情報を載せていきます

Java GUIプログラミング5

JSliderの追加

スライダーを追加します。

JSlider slider = new JSlider();


スライダーの値の取得
int val = slider.getValue()


最小値と最大値と初期値の設定
JSlider slider = JSlider(10, 1000, 100);


スライダーにメモリの追加
slider.setMajorTickSpacing(10);
slider.setMinorTickSpacing(1);
slider.setPaintTicks(true);


メモリの位置にだけ移動
slider.setSnapToTicks(true);


ラベルを自動的に配置
slider.setLabelTable(slider.createStandardLabels(10));
slider.setPaintLabels(true);

10毎に数値を配置をする


イベントの種類


・ActionListener
ボタンをクリックする、テキストフィールドで文字入力中にEnterキーを押す、メニューアイテムを選択する

・WindowListener
フレームを閉じる、開く

・MouseListener
コンポーネントの上にマウスがある時にマウスを押す

・MouseMotionListener
コンポーネントの上にマウスがある時にマウスを動かす

・FocusListener
コンポーネントがキーボードフォーカスを取得する

・ListSelectionListener
テーブル又はリストの選択項目を変更する


アクションイベント(ActionListener)


【アクションイベントを実装するまでの手順】


①対象となるボタンにアクションメソッドをつける

public class MyClass{
JButton btn = new JButton("test");
btn.addActionListener(new myListener());
}


②Listenerをインプリメントする

public class myListener implements ActionListener{

}


サンプル

public class MyClass implements ActionListener{
  JButton btn = new JButton("test");
  btn.addActionListener(this);

  public void actionPerformed(ActionEvent e){
    /* 処理したい内容をここに記述する */
  }
}




これにボタンを実装してみる

public class MyClass{
  JButton btn1 = new JButton("test");
  btn1.addActionListener(new myListener1());

  JButton btn2 = new JButton("test");
  btn2.addActionListener(new myListener2());
}

public class myListener1 implements ActionListener{
  public void actionPerformed(ActionEvent e){
    /* ボタン1の処理したい内容をここに記述する */
  }
}

public class myListener2 implements ActionListener{
    public void actionPerformed(ActionEvent e){
        /* ボタン2の処理したい内容をここに記述する */
    }
}




<サンプルプログラム>

ボタンを押すとラベルに文字を表示させる

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

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Test extends JFrame implements ActionListener{
  JLabel label;

  public static void main(String[] args){
   Test test = new Test("SwingTest");

    test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    test.setVisible(true);
  }

  Test(String title){
    setTitle(title);
    setBounds( 10, 10, 300, 200);

    label = new JLabel("");

    JButton btn = new JButton("Push");
    btn.addActionListener(this);

    JPanel p = new JPanel();
    p.add(label);
    p.add(btn);

    getContentPane().add(p);
  }

  public void actionPerformed(ActionEvent e){
    label.setText("Push");
  }
}


実行結果

f:id:lo25131:20140219161643j:plain


f:id:lo25131:20140219161647j:plain



マウスイベント(MouseEvent)

【イベントの種類】

mouseClicked
コンポーネント上でマウスボタンをクリック (押してから離す) したときに呼び出されます。

mousePressed
コンポーネント上でマウスボタンが押されると呼び出されます。

mouseReleased
コンポーネント上でマウスボタンが離されると呼び出されます。

mouseEntered
コンポーネントにマウスが入ると呼び出されます。

mouseExited
コンポーネントからマウスが出ると呼び出されます。

<イベントの実装方法>


public class myListener implements MouseListener{
public void mouseClicked(MouseEvent e){
/* 処理したい内容をここに記述する */
}

public void mouseEntered(MouseEvent e){
/* 処理したい内容をここに記述する */
}

public void mouseExited(MouseEvent e){
/* 処理したい内容をここに記述する */
}

public void mousePressed(MouseEvent e){
/* 処理したい内容をここに記述する */
}

public void mouseReleased(MouseEvent e){
/* 処理したい内容をここに記述する */
}
}


ウインドウイベント(WindowEvent)


【イベントの種類】

windowOpened
ウィンドウが最初に可視になったときに呼び出されます。

windowClosing
ユーザが、ウィンドウのシステムメニューでウィンドウを閉じようとしたときに呼び出されます。

windowClosed
ウィンドウに対する dispose の呼び出しの結果として、ウィンドウがクローズされたときに呼び出されます。

windowIconified
ウィンドウが通常の状態から最小化された状態に変更されたときに呼び出されます。

windowDeiconified
ウィンドウが最小化された状態から通常の状態に変更されたときに呼び出されます。

windowActivated
Window がアクティブ Window に設定されると呼び出されます。

windowDeactivated
Window がアクティブ Window でなくなったときに呼び出されます。