ダイアログの背景画像を設定する方法は?
-
25-10-2019 - |
質問
私はこれをやろうとしています:
public class DialogMenuHawaii extends Dialog {
Style s = UiFactory.getBaseStyle();
s.setBgTransparency(0);
s.setBgImage( <my image >);
this.setUnselectedStyle(s);
}
しかし、それはうまくいきません。
解決
リソースエディターで「.res」ファイルを開き、好みのテーマを選択します。
- 「選択されていない」タブを開きます DialogContentPane スタイル、1つを作成していない場合は、この回答の最後を見て、それを行う方法について、そしてダイアログBGとして表示する必要がある画像に背景画像を設定します
- 「選択されていない」タブを開きます ダイアログボディ スタイル、あなたが1つ持っていない場合、それを作成する方法についての最後を見て、それを行う方法について?0'そして、背景画像タイプが なし
ノート: :上記のコードは、アプリケーションのすべてのダイアログを反映します。これらのデフォルトスタイルから新しいスタイルを導き出し、上記の手順に従ってそれを適用するよりも、背景画像を備えた特定のダイアログが必要な場合は Dialogmenuhawaii または任意の実行時間 ダイアログ.
方法: シャイのブログ投稿をお勧めします Lwuit Resource Editorチュートリアルパート1 パート10まで、Resouceエディターの機能と機能をよりよく理解する。
:
:
:
PS: プログラム - 私はそれを使用してそれを達成することができませんでした Textarea これは、デフォルトのダイアログの場合です。ダイアログボディコンポーネントを置き換える場合 ラベル 正常に動作する場合は、コードサンプルを以下に示します。なぜそうなのか、私はあまり掘り下げていませんか?たぶん私の自由な時間にそれをするでしょう。したがって、リソースエディターを使用して上記でスクリプト化された作業的な代替ソリューションを提案しました。
class MyDialog extends Dialog {
public void show() {
Container octnPane = this.getDialogComponent();
octnPane.getUnselectedStyle().setBgTransparency(0, false);
Container ctnPane = (Container)((BorderLayout)octnPane.getLayout()).getCenter();
ctnPane.getUnselectedStyle().setBackgroundType(Style.BACKGROUND_IMAGE_SCALED, false);
ctnPane.getUnselectedStyle().setBgImage(myImage, false);
Label t = new Label("Dialog");
t.setUIID("DialogBody");
t.getUnselectedStyle().setBgTransparency(0, false);
ctnPane.addComponent(t);
super.show();
}
}
他のヒント
まず、aを使用することをお勧めします テーマ. 。私たちは、あなたがしているようなカスタマイズなどの小さな実装の詳細を常に変更します。このようなものにテーマを使用しない理由はまったくありません。
手動でのビューロジックをアプリケーションにコーディングする痛みや苦しみに興味がある場合は、次のようないくつかの方法を使用できます。 getDialogComponent()
彼らからスタイルを取得し、それを操作します。ダイアログは、実際にエッジから離れた形でパッドで覆われた形であるため、複雑な獣です。
これはダイアログの背景用です。
Dialog dialog = new Dialog();
dialog.getDialogStyle().setBgImage(Image.createImage("/image/image.png"));
画像を使用してダイアログの透明性を設定する場合。
dialog.getStyle().setBgImage(Image.createImage("/image/image.png");