ボタンを配置するのら
絵をかけるようになったし、ダブルブッファもできるし。「もう私は
GUIプログラムを組めるようにようになったのら。」 「そして、つぎ
はボタンも配置できるようになってやるのら。」
ボタン
ボタンやLabelやTreeやListやファイルエクスプローラ
などの便利な部品をお手軽に利用できるのが
GTKや.NetFrameWorkやJAVAなどの優れた点です。
これらの優れたライブラリーを使うことで、
「プログラムの書き方」
なんてものがわかってくるかも知れませんね
それでは、ボタンの使って見ることにしましょう。
DUIの中でボタンに該当するものは
"DUI.Widget.Container.Bin"の中にあります。
そして、ボタンが押されたりはなされたりしたとき
のイベント処理は おなじみの Dispatcherが行ってくれます。
今回はDispatcherの
"void addButtonClickedListener (ButtonClickedListener listener, Button button, char[] action) "
を利用することにしましょう。
となると、ButtonClickedListenerがきになりますね。ButtonClickedListenerは
ButtonListenerの中で以下のようになっています。
interface ButtonClickedListener
{
void buttonClickedCallback (Button button, char [] action);
};
interface ButtonListener : ButtonClickedListener
{
void buttonPressedCallback (Button button, char [] action);
void buttonReleasedCallback (Button button, char [] action);
void buttonEnterCallback (Button button, char [] action);
void buttonLeaveCallback (Button button, char [] action);
void buttonActivateCallback (Button button, char [] action);
};
詳しくは
Listenerであーーる。
を参考にしてください。とりあえずは
これだけわかればもうボタンを作れちゃいますよね。
「では では、早速 プログラムを書いてみることにしましょう」
import dui.All;
public:
class HelloWorld : MainWindow ,ButtonClickedListener
{
public :
this()
{
super("mosskite");
setSizeRequest(200,200);
Button button;
button = new Button();
button.setLabel("Kyoro");
add(button);
show();
Dispatcher dis = new Dispatcher();
dis.addButtonClickedListener(this, button,"Kyoro");
}
void buttonClickedCallback (Button button, char [] action)
{
printf("Clicked\n");
}
}
void main(char [][]args)
{
DUI dui = DUI.dui(args);
new HelloWorld();
dui.go();
}
絵つきのボタンを作ろう
ボタンはcontainerを継承しているのでラベルを貼ったり
Imageを張ったりすることができます。
はい、ボタンを私ごのみのデザインに変えることができるのです。
ではボタンにImageを貼り付けて見ましょう。
import dui.All;
public:
class HelloWorld : MainWindow ,ButtonClickedListener
{
public :
this()
{
super("Kyoro");
setSizeRequest(200,200);
Button button;
Image image;
button = new Button();
image = new Image("d3.gif");
button.add(image);
add(button);
show();
Dispatcher dis = new Dispatcher();
dis.addButtonClickedListener(this, button,"Kyoro");
}
void buttonClickedCallback (Button button, char [] action)
{
printf("Clicked\n");
}
}
void main(char [][]args)
{
DUI dui = DUI.dui(args);
new HelloWorld();
dui.go();
}
|