シミュレーションラブ

友人の結婚式の時、フィンガーボールの水を飲んでいた人に「おねぇさん、かわいいことしてますね♪」と言ったら殴られた人のブログ。

iamweakが教えるプロ講座第2回

 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回プロ講座へ続く(いや、もうないから)

Posted by iamweak - 2008年07月10日 00:03 | トラックバック (0)

この記事のトラックバックURL


※TBは、当サイトへリンクが無いと自動拒否されます(ブログ反映は20分後)。記事に関係ないTBはご遠慮願います。

この記事に対するトラックバック

この記事に対するトラックバックはまだありません。



Powered by Movable Type 3.33-ja and Wandering Wind
Copyright : (C) iamweak All Rights Reserved.