1

SceneBuilder で動作する JavaFX2 で設計時間を検出する方法はありますか? 似ているもの:

java.beans.Beans.isDesignTime()

スイング用?SceneBuilder に表示するカスタム コントロールを開発しています。ただし、一部のコードは ClassNotFoundException をトリガーします。必要なライブラリを追加したくありません。代わりに、その例外をトリガーするコードをバイパスしたいと考えています。

[アップデート]

私は何を達成しようとしているのかを話します。入力コントロール コンポーネント (テキスト フィールド、コンボ ボックスなど) を拡張し、propertyName 属性を追加します。また、入力コントロールをスキャンし、プロパティ名に基づいて値を割り当てる Form extends パネルも作成しました。値は、フォームに設定されている POJO から取得されます。Apache commons beanutls を使用して値を入力コントロールに割り当てるため、bean utils jar にクラスパスを提供する必要があります。

その機能を自動的に有効にすると、SceneBuilder で Form を使用できなくなります。フォームは入力コントロールを検出し、割り当てを行うため、ライブラリが必要です。私はこの機能を無効にし、プログラマーが有効にする方法を提供することにしました。それは私が望むものではありませんが、仕方がないと思います。

4

3 に答える 3

0

このクラスを使用できます:

public class SceneBuilderHelper
{
    public static boolean isSceneBuilder()
    {
        try
        {
            Class.forName("com.oracle.javafx.scenebuilder.app.SceneBuilderApp");
            return true;
        }
        catch (ClassNotFoundException e)
        {
        }

        return  false;
    }
}

あなたのコードでは、これを行うことができます:

if (!SceneBuilderHelper.isSceneBuilder())
{
   // do things that should not be done in SceneBuilder
}
于 2015-11-27T14:14:37.637 に答える
0

FXML は常に設計時です。FXML でコントロールを設計し、そのコントローラーですべてのロジックとイベント処理を設計する場合、これは無料で入手できます。

于 2013-05-08T19:32:30.083 に答える