import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.events.*;
import java.util.*;
public class gamen1 {
// 共通領域
public HashMap map = null;
// モデル
public Shori shori = null;
// 画面項目項目
Display ff;
Shell f;
Button b1;
Button b2;
Text t1;
int seikai = 0;
int phaseNo = 0;
int curno = 0;
/*
* 生成
*/
public gamen1(HashMap map)
{
this.map = map;
map.put("gamen1",this);
this.shori = (Shori)map.get("shori");
initAppData();
}
/*
* 表示
*/
public void initAppData()
{
// フレームを作成する
ff =(Display)map.get("display");
f = new Shell(ff);
f.setText("test");
f.setSize(240,320);
f.setLayout(null);
// アクションを作成する
gamen1_HandleEvent al = new gamen1_HandleEvent();
// ラベル
Label l1 = new Label(f,SWT.NULL);
l1.setLocation(10,30);
l1.setSize(100,30);
l1.setText("早うちの練習");
Label l2 = new Label(f,SWT.NULL);
l2.setLocation(10,120);
l2.setSize(150,30);
l2.setText("これは、練習文です。");
Label l3 = new Label(f,SWT.NULL);
l3.setLocation(10,70);
l3.setSize(100,30);
l3.setText("以下の文を打とう!");
// テキスト
t1 = new Text(f,SWT.NULL);
t1.setLocation(10,160);
t1.setSize(150,80);
// ボタン作成
b1 = new Button(f,SWT.NULL);
b1.setLocation(120,70);
b1.setSize(100,30);
b1.addSelectionListener(al);
b1.setText("挑戦する");
// ボタン作成
b2 = new Button(f,SWT.NULL);
b2.setLocation(10,250);
b2.setSize(100,30);
b2.addSelectionListener(al);
b2.setText("打ち終わった!");
// 表示
f.open();
DispAppData();
// ウィンドウが破棄されるまでループ
while (f.isDisposed() == false)
{
if (ff.readAndDispatch() == false)
{
ff.sleep();
}
}
// ff.dispose();
}
/*
* 再描画
*/
public void DispAppData()
{
// 画面間引数を受け取る
String rensyu = "";
if ( map != null )
{
rensyu = (String)map.get("rensyu");
if (rensyu == null )
rensyu = "";
}
// 画面表示
if ( t1 != null )
{
t1.setText(rensyu);
}
}
/*
* 終了
*/
public void freeAppData()
{
// 2度目にもとってきたときのため、初期化
map.remove("rensyu");
phaseNo = 0;
curno = 0;
String dis = (String)map.get("dispose");
if ( dis == null )
return;
if ( dis.equals("yes") == true )
{
f.dispose();
map.remove("gamen1");
}
}
/*
* イベントリスナー
*/
private class gamen1_HandleEvent
extends SelectionAdapter
{
/*
* ボタンが押されたときの処理
*/
public void widgetSelected(SelectionEvent e)
{
Object o = e.getSource();
if ( o.equals(b1)== true)
{ // 挑戦する
System.out.println("挑戦する");
//======================//
// 内容の取得 //
//======================//
map.put("rensyu",t1.getText());
//======================//
// 処理 //
//======================//
if ( shori == null )
return;
shori.shori1();
//======================//
// 次の画面処理 //
//======================//
phaseNo = 1;
curno = 1;
DispAppData();
return;
}
if ( o.equals(b2)== true)
{ // 打ち終わった!
//======================//
// 内容の取得 //
//======================//
map.put("rensyu",t1.getText());
//======================//
// 処理 //
//======================//
if ( shori == null )
return;
shori.shori2();
//======================//
// 次の画面処理 //
//======================//
// 先に消す
freeAppData();
// 第二画面表示
gamen2 g2 = (gamen2)map.get("gamen2");
if ( g2 == null )
{
g2 = new gamen2(map);
}
else
{
// 再描画
g2.DispAppData();
}
}
}
}
}
|