これは
JFrame
|- JPanel
|- JTextField
|- JButton
という入れ子状態にする必要があるようです。
JButtonに対するイベントは、標準のEventのほかにActionを用いることもできますが 、今回は標準のMouseEventです。
また、AsWingのコンポーネントで色を指定する場合は、16進数カラー値とアルファ値の組み合わせであるASColor型のデータを使用する必要があります。
他に注目したいことといえば、いずれもWindowsしか確認してませんけど、FireFoxでもInternetExprolerでも同じ表示、同じ動作になっているクロスプラットフォーム性です。HTML5は確かにFlashのような機能をサポートしていくと思いますが、複数の再生環境で同じ表示、同じ動作になるかどうかはまた別の問題です。
サンプルの表示
【Source】
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldType;
import Date;
import flash.display.Graphics;
//AsWing
import org.aswing.SoftBoxLayout;
import org.aswing.JFrame;
import org.aswing.JPanel;
import org.aswing.JTextField;
import org.aswing.JButton;
import org.aswing.ASColor;
/**
* ...
* @author N.Lab
*/
public class Main extends Sprite
{
public var frame : JFrame;
public var panel : JPanel = new JPanel(new SoftBoxLayout(SoftBoxLayout.Y_AXIS));
public var tfDate : JTextField = new JTextField("");
public var btnNewDate:JButton = new JButton("New Date");
public function Main():void
{
graphics.beginFill(0x999999, 1);
graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
graphics.endFill();
stage.addEventListener(MouseEvent.CLICK, _onStageClick);
tfDate.setSizeWH(200,20);
tfDate.x = 10;
tfDate.y = 10;
tfDate.setBackground(new ASColor(0xFFFFFF,1));
tfDate.setText(String(new Date()));
btnNewDate.setSizeWH(200,20);
btnNewDate.x = 220;
btnNewDate.y = 10;
btnNewDate.addEventListener(MouseEvent.CLICK, _onSaveClick);
panel.append(tfDate);
panel.append(btnNewDate);
panel.visible = true;
frame = new JFrame( this, "Date" );
frame.setContentPane(panel);//panel:JPanelにappendしたものを、frame:JFrameに入れ込み
frame.x = 50;
frame.y = 50;
frame.pack();
frame.show();
}
private function _onStageClick(e:MouseEvent):void
{//×ボタンでframe:JFrameがHideになった場合、ステージクリックで表示させる。
frame.show();
}
private function _onSaveClick(e:MouseEvent):void
{
tfDate.setText(String(new Date()));
}
}
}
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldType;
import Date;
import flash.display.Graphics;
//AsWing
import org.aswing.SoftBoxLayout;
import org.aswing.JFrame;
import org.aswing.JPanel;
import org.aswing.JTextField;
import org.aswing.JButton;
import org.aswing.ASColor;
/**
* ...
* @author N.Lab
*/
public class Main extends Sprite
{
public var frame : JFrame;
public var panel : JPanel = new JPanel(new SoftBoxLayout(SoftBoxLayout.Y_AXIS));
public var tfDate : JTextField = new JTextField("");
public var btnNewDate:JButton = new JButton("New Date");
public function Main():void
{
graphics.beginFill(0x999999, 1);
graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
graphics.endFill();
stage.addEventListener(MouseEvent.CLICK, _onStageClick);
tfDate.setSizeWH(200,20);
tfDate.x = 10;
tfDate.y = 10;
tfDate.setBackground(new ASColor(0xFFFFFF,1));
tfDate.setText(String(new Date()));
btnNewDate.setSizeWH(200,20);
btnNewDate.x = 220;
btnNewDate.y = 10;
btnNewDate.addEventListener(MouseEvent.CLICK, _onSaveClick);
panel.append(tfDate);
panel.append(btnNewDate);
panel.visible = true;
frame = new JFrame( this, "Date" );
frame.setContentPane(panel);//panel:JPanelにappendしたものを、frame:JFrameに入れ込み
frame.x = 50;
frame.y = 50;
frame.pack();
frame.show();
}
private function _onStageClick(e:MouseEvent):void
{//×ボタンでframe:JFrameがHideになった場合、ステージクリックで表示させる。
frame.show();
}
private function _onSaveClick(e:MouseEvent):void
{
tfDate.setText(String(new Date()));
}
}
}