モーダルダイアログボックスの表示は非常に簡単です。
次のようにします。
dialog1.js
----------------------------------------------------------------
import System.Windows.Forms;
var f : Form = new Form();
f.ShowDialog(); //モーダルダイアログボックスとして表示
System.Windows.Forms.Formクラスのインスタンスを作って、
ShowDialogメソッドで表示するだけです。
こうすると単なるのっぺらぼうなウィンドウが表示されます。
ここからは次のようにコンパイルしましょう。
>jsc /target:winexe dialog1.js
あるいは、
>jsc /t:winexe dialog1.js
こうすると、ダブルクリックで起動したときもDOSの画面が表示されなくてすみます。
ダイアログの位置とサイズは次のように指定します。
dialog2.js
------------------------------------------------
import System.Windows.Forms;
var f : MyForm = new MyForm();
f.ShowDialog();
class MyForm extends Form {
function MyForm() {
super();
Width = 100;
Height = 100;
Top = 50;
Left = 200;
//これが無いとシステムに位置を決められる
StartPosition = FormStartPosition.Manual;
}
}
StartPositionを上のように設定しないと、
位置はシステムの設定になります。
次のようにSystem.Drawing.Sizeと
System.Drawing.Point構造体を使うと少しすっきりします。
dialog3.js
------------------------------------------------
import System.Windows.Forms;
import System.Drawing;
var f : MyForm = new MyForm();
f.ShowDialog();
class MyForm extends Form {
function MyForm() {
super();
Size = new System.Drawing.Size(100, 100);
Location = new Point(200, 50);
StartPosition = FormStartPosition.Manual;
}
}
上ではFormクラスから
継承したクラスを定義していますが、
そんなことをしなくてももちろんよいです。
import System.Windows.Forms;
import System.Drawing;
var f : Form = new Form();
f.Size = new System.Drawing.Size(100, 100);
f.Location = new Point(200, 50);
f.StartPosition = FormStartPosition.Manual;
f.ShowDialog();
こちらの方が簡単ですが、場合によって使い分けてください。
ボタンなどのコントロールは次のように配置します。
dialog4.js
------------------------------------------------
...
class MyForm extends Form {
var btn1 : Button; //ボタンオブジェクト
function MyForm() {
super();
Size = new System.Drawing.Size(100, 80);
Location = new Point(200, 50);
StartPosition = FormStartPosition.Manual;
btn1 = new Button();
btn1.Text = "押してね☆"; //ボタンの表示テキスト
btn1.Location = new Point(15, 20);
Controls.Add(btn1); //ボタンを配置する
}
}
Formの
Controlsプロパティは
フォーム上のコントロールのコレクションを表します。
その他の設定が色々あります。
...
class MyForm extends Form {
var btn1 : Button;
function MyForm() {
...
Text = "test"; //ウィンドウタイトル
MaximizeBox = false;
MinimizeBox = false;
ControlBox = false; //閉じるボタンを非表示
ForeColor = Color.Red;
BackColor = Color.White;
}
}
他にも色々あるので、
Form メンバ
をご覧ください。