2008/02/28
Eclipseのインストール
ネット上でインストールしようとしたが日本語化ができなかった。以前もできなかったような気がする。コマンドプロンプトにしてクリーン起動したが日本語化できなかった。やむなく、宮本信二著Eclipse3.2完全攻略の付録CDでインストールした。バージョンアップはEclipseからできるはずだし、Visual
Editor もあわせてインストールできるのでダウンロードも必要なくこれがベストであると思う。
2007/07/13
//リスナが他のクラスに分離した例です import java.applet.Applet; import java.awt.*; import java.awt.event.*;
public class NewApplet extends Applet {
public String status;
public void init() {
//リスナークラスのインスタンス化
EventHandler eh = new EventHandler(this);
//フィールドの初期化
status="out";
//リスナーの追加
this.addMouseListener(eh);
}
public void paint(Graphics gs) {
/*java.lang クラス String equals public boolean equals(Object anObject)この文字列と指定された
オブジェクトを比較します。引数が null でなく、このオブジェクトと同じ文字シーケンスを表す String オブジェクト
である場合にだけ、結果は true になります。 */
if(status.equals("in")) {
gs.setColor(Color.red);
gs.drawString("Mouse is in.", 20,20);
} else {
gs.setColor(Color.blue);
gs.drawString("Mouse is Out.", 20,20);
}
}
}
//マウスに関するイベントを取得するイベントリスナーインタフェース //MouseListener の実装クラス
class EventHandler implements MouseListener {
NewApplet apl;
EventHandler(NewApplet obj){
apl = obj;
}
public void mouseEntered(MouseEvent e) {
apl.status = "in";
apl.repaint();
}
public void mouseExited(MouseEvent e) {
apl.status = "out";
apl.repaint();
}
//空の実装
public void mouseClicked(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}
import java.applet.Applet; import java.awt.Button; import java.awt.Graphics; import java.awt.event.ActionListener; import java.awt.event.ActionEvent;
//リスナーインタフェースの実装
public class NewApplet extends Applet implements ActionListener {
Button btn;
int i = 0;
/*アクションイベントを受け取るためのリスナインタフェースです。アクションイベントの処理に関連するクラスは、
このインタフェースを実装します。さらに、そうしたクラスによって作成されたオブジェクトは、
コンポーネントの addActionListener メソッドを使用することによってコンポーネントに登録されます。
アクションイベントが発生すると、オブジェクトの actionPerformed メソッドが呼び出されます。
ActionListenerというのは、ボタンが押されたときの処理をするためのクラスです。 ただし、スーパークラスであるAppletクラスと異なる点は、ActionListenerには、 actionPerformedというメンバ関数は存在しますが、実際の関数の処理がありません。 このような、クラスのことをインターフェイスと呼びます。 つまり、"implements ActionListener"は、ActionListenerインターフェイスのメンバ関数を実装しますと、 いうことになります。 implementsでは、メンバ関数を必ず実装しなければならない。これは インターフェイスの中には実際の処理がないためです。 しっかりActionListenerのメンバ関数であるactionPerformed関数を追加してあります。
*/
//アプレットの初期化メソッド
public void init() {
btn = new Button("Click Me!");
this.add(btn);
//イベントリスナーの追加
//btnのメソッドのaddActionListenerが呼ばれています。
/*実は、ActionListenerインターフェイスのメンバ関数を実装するだけでは
ボタンで発生したイベントを受け取ることは出来ないのです。このように、addActionListenerを呼んで、
actionPerformedが実装されているクラスを指定しなければなりません。これをリスナーの登録といいます。
btnはthisポインタを引数に指定しているので、
イベント発生時にはactionPerformedが呼ばれるようになるということがわかります。
このボタンからアクションイベントを受け取るために、指定されたアクションリスナーを追加します。
アクションイベントは、ユーザがこのボタンの上でマウスボタンを押したり、離したりしたときに発生します。
l が null の場合、例外はスローされず、アクションは実行されません。
アクションイベントを受け取るためのリスナインタフェースです。アクションイベントの処理に関連するクラスは、
このインタフェースを実装します。さらに、そうしたクラスによって作成されたオブジェクトは、コンポーネントの
addActionListener メソッドを使用することによってコンポーネントに登録されます。
アクションイベントが発生すると、オブジェクトの actionPerformed メソッドが呼び出されます。
*/
btn.addActionListener(this);
}
//アプレットの終了
public void stop() {
this.i = 0;
}
//描画
public void paint(Graphics gs) {
gs.drawString("Count: " + (new Integer(i)).toString(), 30,60);
}
//アクションの結果の定義、この関数が、ボタンが押されたときに呼ばれる関数になります。
//引数のActionEventの中には、発生したイベントの詳細な情報が含まれています。
public void actionPerformed(ActionEvent e) {
this.i++;
this.repaint();
}
}
2007/07/12
import java.awt.*;
import java.applet.Applet;
public class NewApplet extends Applet {
public void init() {
//レイアウトマネージャの作成
LayoutManager blt;
//RIGHT,LEFT,CENTERを指定
blt = new FlowLayout(FlowLayout.CENTER);
//java.awt.ContainerクラスのsetLayoutメソッドjava.awt.ContainerクラスのsetLayoutメソッド
this.setLayout(blt);
/* 上の三行は通常、次のように書く:
* this.setLayout(new FlowLayout(FlowLayout.RIGHT));
*/
//部品の追加 ボタンなどコンポーネントをadd()メソッドで追加
//追加したコンポーネントはButton bu = new Button(”ボタン");です。引数にはボタンの名前を指定します。
this.add(new Button("Ok"));
this.add(new Button("Open"));
this.add(new Button("Close"));
// コンポーネントの配置にはsetBounds()メソッドを使います。コンポーネントの配置にはsetBounds()メソッドを使います。
}
}
import java.awt.*;
//アプリケーションを Frame
クラスのサブクラスとして実装します。
public class NewMain extends Frame{
public static void main(String[] args) {
new NewMain();
}
NewMain() {
//フレームのタイトル
super("ButtonTest");
//フレームのサイズ
setSize(200, 100);
//これがないと全面がボタンになってしまう
/*Applet
のデフォルトのレイアウトです。レイアウトマネージャを指定しないアプレットではこれが指定されたことになります。
追加された部品は、通常の文字列と同様に追加された順番で行内に左から右へ並べられます。部品の大きさは自然サイズに固定されて、一行内に収まりきらなくなると改行されて続きます。
行方向は貼り付ける対象のものに固定されますが、中央揃え、左揃え、右揃え、行頭揃え、行末揃えが指定できます。
*/
setLayout(new FlowLayout());
Button b1 = new Button("OK");
add(b1);
show();
}
}
//起動したフレームはタスクマネージャで終了する
//java.awt.* をインポートします。
import java.awt.*;
//アプリケーションを Frame
クラスのサブクラスとして実装します。
public class NewMain extends Frame{
public static void main(String[] args) {
new NewMain();
}
NewMain() {
//super()
で親クラスのコンストラクタを呼び出します。
super("FrameTest");
//setSize()
でフレームのサイズを指定します。
setSize(200, 100);
//show()
でフレームを表示します。
show();
}
}
//起動したフレームはタスクマネージャで終了する
2007/07/10
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
public class NewApplet extends Applet implements ActionListener{
Button bt;
frame fr;
public void init() {
bt = new Button("ウィンドウ表示");
add(bt);
bt.addActionListener(this);
fr = new frame("操作対象ウィンドウ");
fr.setSize(250,120);
}
//メッソッドでアクションが発生すると呼び出されます。
public void actionPerformed(ActionEvent event) {
//public void setVisible(boolean b)パラメータ b
の値に応じて、このコンポーネントを表示するか、または非表示にします。
//boolean b は true か false
fr.setVisible(true);
}
}
//MouseListenerインターフェイスを実装
class frame extends Frame implements MouseListener {
String msg = "マウスのボタンを押して下さい";
//これはコンストラクタ、コンストラクタとはクラスのオブジェクトが作成されたとき自動的に実行される処理
//引数のあるコンストラクタを宣言、上の fr = new frame("操作対象ウィンドウ");
frame(String title) {
//Frame(String title) これがないと "操作対象ウィンドウ" のタイトルが付かない
super(title);
//イベントソースとイベントリスナを関連付ける
addMouseListener(this);
//このウィンドウからウィンドウイベントを受け取るために、指定されたウィンドウリスナーを追加します。l
が null の場合、
//例外はスローされず、処理も実行されません。
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
setVisible(false);
}
});
}
public void mousePressed(MouseEvent e) {
//アクションイベントの発生中に押された修飾キーを返します。
//このイベントに関する修飾子のフラグを返します。
//いかが分からない
if((e.getModifiers() & InputEvent.BUTTON1_MASK) ==
InputEvent.BUTTON1_MASK) {
msg = "左ボタンを押しました ";
} else {
msg = "右ボタンを押しました ";
}
msg += e.getX() + "," + e.getY();
//このコンポーネントを再びペイントします。
repaint();
}
public void mouseClicked(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void paint(Graphics g) {
g.drawString(msg,50,65);
}
}