| 2.Button系のコンポーネント |
ボタンも拡張されてます。さらに詳しい内容は API ドキュメントを参考にしてください。
| (1) Button 系クラスの概要 |
| (2) アイコン付きボタン |
Icon icon = new ImageIcon("icon.gif");
JButton icon_button = new JButton("アイコンボタン",icon);
JButton icon_button2 = new JButton("アイコンボタン2");
icon_button2.setIcon(icon);
|
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class ButtonSample extends JFrame implements ActionListener {
ButtonSample() {
super("ButtonSample");
/* 画像ファイルは適当に用意してください */
Icon icon = new ImageIcon("tama1-b.gif");
/* アイコン付きボタン */
JButton icon_button = new JButton("アイコンボタン",icon);
icon_button.addActionListener(this);
/* アイコン付きトグルボタン */
JToggleButton icon_button2 = new JToggleButton("OFF");
icon_button2.setIcon(icon);
icon_button2.addActionListener(this);
setSize(200,200);
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.add(icon_button);
c.add(icon_button2);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
Object src = e.getSource();
if ( src instanceof JButton ) {
System.out.println("JButton: クリック!");
}
if ( src instanceof JToggleButton ) {
JToggleButton b = (JToggleButton)src;
/* ボタンの状態によってラベルを変更 */
if ( b.isSelected() ) {
b.setText("ON");
} else {
b.setText("OFF");
}
}
}
public static void main(String args[]) {
new ButtonSample();
}
}
|
C:\java_test>javac ButtonSample.java C:\java_test>java ButtonSample |

| (3) 細かい設定がしたい |
setHorizontalAlignment(int alignment);
setVerticalAlignment(int alignment);
setHorizontalTextPosition(int textPosition);
setVerticalTextPosition(int textPosition);
これらのメソッドを使ってアイコンやラベルの位置を調節します。SwingConstants にどんな値があるかはAPIドキュメントの javax.swing.SwingContants を参考にしてください。AbstractButton のところにも設定できる値が書いてあります。SwingConstans はこの後もよく出てきます。
また Swing コンポーネントのスーパークラスとして JComponent クラスがあり、JComponent のスーパークラスとして Component クラスがあります。ですから GUI コンポーネント全体に共通する設定(背景色など)は、これらのクラスのメソッドを使って行います。
ButtonSample2.java
import java.awt.*;
import javax.swing.*;
class ButtonSample2 extends JFrame {
ButtonSample2() {
super("ButtonSample2");
Icon icon = new ImageIcon("tama1-b.gif");
/* アイコン付きボタン */
JButton button = new JButton("アイコンボタン",icon);
button.setHorizontalTextPosition(SwingConstants.LEFT);
button.setVerticalTextPosition(SwingConstants.bottom);
button.setBackground(new Color(255,192,96));
setSize(200,200);
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.add(button);
setVisible(true);
}
public static void main(String args[]) {
new ButtonSample2();
}
}
|
C:\java_test>javac ButtonSample2.java C:\java_test>java ButtonSample2 |
