Javaプログラミング/Javaプログラミング関連情報

バインドとモデルクラス

今回は、「バインド」というテクニックを使って、ウィジェットのアトリビュートをオペレーションから操作してみましょう。

執筆者:掌田 津耶乃

(※本連載は、OpenJFX 200710081507をベースに解説を行っています。2008年秋に正式リリース予定のJavaFX 1.0とは一部内容が異なっている部分がありますのでご注意ください)


手続き方式でのウィジェット利用


前回、ボタンをクリックしてオペレーションの処理を実行させるイベント処理の基本について説明をしました。これを応用すれば、例えば「ユーザが入力したテキストをもとに必要な処理をして、結果をラベルに表示する」というようなこともできそうです。

が、どうやればいいのか?を考えてみると、「ウィジェットや、アトリビュートにアクセスする方法」が見当たらないことに気がつくはずです。宣言方式で書いた場合、作成したウインドウもウィジェットも、変数などに保管されてはいないのですから。

まずは、我々Javaプログラマにとって一番馴染み深い「手続き方式」で操作を考えてみましょう。これは、誰でもすぐに思いつくはずです。こんな感じになるでしょう。

import javafx.ui.*;

var appframe:Frame = new Frame();
appframe.width = 300;
appframe.height = 120;
appframe.centerOnScreen = true;
appframe.title = "JavaFX";

var panel:BorderPanel = new BorderPanel();

var font:Font = new Font();
font.size = 16;
font.style = BOLD;

var label:Label = new Label();
label.text = "Hello!";
label.font = font;
panel.top = label;

var field:TextField = new TextField();
panel.center = field;

var button:Button = new Button();
button.text = "Click";
button.action = operation(){
  var s = field.value;
  var res = "あなたは、{s}と書いた。";
  label.text = res;
};
panel.bottom = button;

appframe.content = panel;
appframe.visible = true;

テキストを書いてボタンをクリックすると、メッセージがラベルに表示される。


ごく単純なスクリプトですね。ウィジェット類のインスタンスを順に作成しては変数に収めていく。そしてButtonのactionにoiperationを設定し、ウィジェットの格納されている変数を使ってアトリビュートを取り出し操作する。JavaFXの基本的な文法がわかっていれば誰でも理解できそうなものです。
  • 1
  • 2
  • 3
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます