JFrame
以下は ビジュアル・クラスで、JFrame を作成 した直後のソースコードです
- main
- Main
- initialize
- getJContentPane
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
public class Main extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Main thisClass = new Main();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
}
/**
* This is the default constructor
*/
public Main() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
}
return jContentPane;
}
}
● 最初にレイアウト設定を null にしておきます
ボタン配置
ウインドウが表示されているエリアの右上の左向きの三角をクリックして、
パレットを表示させて下さい。
JButton を選択して JFrame の上へカーソルを移動させ、ドラッグ&ドロップで
四角形のエリア( ボタン ) を作成します。
ボタンをクリックして、"ボタン" と入力してテキストを表示させます
コメント部分(14〜18) は Visual Editor が管理していますので、変更しないようにして下さい。
private JButton jButton = null;
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new Rectangle(45, 37, 132, 29));
jButton.setText("ボタン");
}
return jButton;
}
ボタンのクリックイベントを作成
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new Rectangle(45, 37, 132, 29));
jButton.setText("ボタン");
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()");
}
});
}
return jButton;
}
メッセージボックスを表示して、イベントのテストを行います
showMessageDialog の第1引数は、ダイアログを表示する Frame を指定 しますが、
Main.this である事に注意して下さい。this は、java.awt.event.ActionListener のインスタンスになります。
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new Rectangle(45, 37, 132, 29));
jButton.setText("ボタン");
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()");
JOptionPane.showMessageDialog(Main.this, "日本語表示");
}
});
}
return jButton;
}
メッセージボックスのフォント設定は直接できないので、HTML を使って変更します。
( 綺麗な表示は無理ですが )
String msg = "<HTML><SPAN style='font-family:\"HG創英角ポップ体\";font-size:20px;'>日本語表示</SPAN></HTML>";
JOptionPane.showMessageDialog(Main.this, msg);
JPanel に追加されているコントロールの一覧を取得して処理する
テキストフィールドとチェックボックスを追加して、ボタンをクリックすると全てのコントロールを
使用不可にします。( 終了しかできなくなります )
※ 次の目的は、この方法を用いてグループ化したコントロールに特定の処理を行う為に、(例:入力値の一括クリア)
※ ユーザコントロールを作成してグループ用のプロパティ(フィールド) を付加する事です。
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new Rectangle(45, 37, 132, 29));
jButton.setText("ボタン");
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()");
String msg = "<HTML><SPAN style='font-family:\"HG創英角ポップ体\";font-size:20px;'>日本語表示</SPAN></HTML>";
JOptionPane.showMessageDialog(Main.this, msg);
int cnt = jContentPane.getComponentCount();
for( int i = 0; i< cnt; i++) {
java.awt.Component child = jContentPane.getComponent(i);
child.setEnabled(false);
}
}
});
}
return jButton;
}
|