iamweakが教えるプロ講座第1回は、2007年3月に執筆しました。実に1年4ヶ月ぶりの第2回講座です(笑)。
前回は本当に初歩的なことなので、初心者の方は知っておいて損ではない!みたいなことをやりました。
今回はJavaでGUI画面を作り、ボタンを配置し、使えるようにする。ただボタンを使えるだけでなく、他のclassにジャンプし、走るようにします。この方法、ネットにいくら検索しても乗ってなかったので、個人的にメモ代わりに置いておきます。
なぜかこのオンラインゲームファンサイトなのに観覧者はプログラマーの人が多いので、Javaを使ったこともある人もいると思う。一知識として覚えておきたい。以下のJavaファイルをコマンドプロンプト(Win)で実行。
Top.javaのファイル
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;class Top{
Top(){
Frame f = new Frame("いやん"); //フレームを作りタイトルを指定します。
f.addWindowListener( new Wl() ); //ウィンドウリスナーを設定
f.setLayout(null);
f.setSize(350,300); //フレームサイズ
f.setLocationRelativeTo(null); //Window表示位置を画面中央にする(なるべくsetVisibleの前に)
f.setResizable(false); //フレームサイズ固定// ボタンの作成
JButton b1,b2;
b1 = new JButton("ボタン1");
b2 = new JButton("ボタン2");//ボタンサイズ
b1.setSize(100,50);
b2.setSize(100,50);//ボタン位置
b1.setLocation(30,85);
b2.setLocation(30,155);//追加
f.add(b1);
f.add(b2);//ラベル
Label l2 = new Label("押して♪");
l2.setLocation(30,30);
l2.setSize(100,20);
f.add(l2);//ボタンにアクションリスナーを設定
b1.addActionListener( new class1(f));
b2.addActionListener( new class2(f));f.setVisible(true); //表示は全ての準備ができてから行う
}
public static void main(String[] args){
Top to = new Top(); //メイン
}
}class class1 implements ActionListener{
Frame j;
class1(Frame j){
this.j=j;
}
public void actionPerformed( ActionEvent e ){
new botan1();
j.setVisible(false);
}
}class class2 implements ActionListener{
Frame j;
class2(Frame j){
this.j=j;
}
public void actionPerformed( ActionEvent e ){
new botan2();
j.setVisible(false);
}
}class Wl implements WindowListener{
public void actionPerformed(ActionEvent e){}
public void windowActivated(WindowEvent e){}
public void windowClosed(WindowEvent e){}
public void windowClosing(WindowEvent e){System.exit(0);}
public void windowDeactivated(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
public void windowIconified(WindowEvent e){}
public void windowOpened(WindowEvent e){}
}
botan1.javaのファイル
class botan1{
botan1(){
System.out.println("ボタン1が押されましたので終了");
System.exit(0);
}
}
botan2.javaのファイル
class botan2{
botan2(){
System.out.println("ボタン2が押されたが、終了はしないぜ");
}
}
先にコンパイルするのは、botan1.java、botan2.javaです。Top.javaを先にコンパイルするとClassが見つけられないかシンボルが見つけられないので、エラーが起こるはずです。コンパイル後、Topを実行すると、ボタンが押せるようになります。botan1が押されるとjavaは終了し、botan2が押されるとそのまま走り続けます(CTRL+Cで終了)。
あくまでも、Topと別のクラスになっているので、ボタン1の中身だけを書き換えたい時はトップメニューまで再コンパイルする必要がない。
第3回プロ講座へ続く(いや、もうないから)
