Eigentlich ist das Anpassen des Aussehens in Codename One einfacher, da alles in Java geschrieben ist, können Sie buchstäblich alles über das Aussehen von irgendetwas anpassen.
Der Einfachheit halber habe ich Code anstelle von Stilen verwendet, die besser wären, Sie können die Dialog
UIID und andere UIIDs im Design Designer anpassen, um mehr Flexibilität zu erreichen und dies einfacher zu haben. Dies würde jedoch viele Screenshots und Erklärungen erfordern, damit ich die Anpassung in Code tat:
Form f = new Form("Test");
Button b = new Button("Show Dialog");
f.add(b);
b.addActionListener(e -> {
Dialog dlg = new Dialog("Authentication");
Style dlgStyle = dlg.getDialogStyle();
dlgStyle.setBorder(Border.createEmpty());
dlgStyle.setBgTransparency(255);
dlgStyle.setBgColor(0xffffff);
Label title = dlg.getTitleComponent();
title.setIcon(finalDuke.scaledHeight(title.getPreferredH()));
title.getUnselectedStyle().setFgColor(0xff);
title.getUnselectedStyle().setAlignment(Component.LEFT);
dlg.setLayout(BoxLayout.y());
Label blueLabel = new Label();
blueLabel.setShowEvenIfBlank(true);
blueLabel.getUnselectedStyle().setBgColor(0xff);
blueLabel.getUnselectedStyle().setPadding(1, 1, 1, 1);
blueLabel.getUnselectedStyle().setPaddingUnit(Style.UNIT_TYPE_PIXELS);
dlg.add(blueLabel);
TextArea ta = new TextArea("This is the text you want to appear in the dialog, this might line break if the text is too long...");
ta.setEditable(false);
ta.setUIID("DialogBody");
ta.getAllStyles().setFgColor(0);
dlg.add(ta);
Label grayLabel = new Label();
grayLabel.setShowEvenIfBlank(true);
grayLabel.getUnselectedStyle().setBgColor(0xcccccc);
grayLabel.getUnselectedStyle().setPadding(1, 1, 1, 1);
grayLabel.getUnselectedStyle().setPaddingUnit(Style.UNIT_TYPE_PIXELS);
dlg.add(grayLabel);
Button ok = new Button(new Command("OK"));
ok.getAllStyles().setBorder(Border.createEmpty());
ok.getAllStyles().setFgColor(0);
dlg.add(ok);
dlg.showDialog();
});
f.show();
Ich würde empfehlen, den Dialog Anpassung im Thema Designer tun und ein 9-teilige Bildrand verwendet, die ist besser aussehend.
Wo sollte ich diesen Code in meinem Projekt anpassen. In StateMachine.java oder StateMachineBase.java oder anderswo? –
Sie können diesen Code überall schreiben, um einen Dialog anzuzeigen. Sie können alle Dialoge so anpassen, dass sie z. wenn sie mit einem Android-Simulator-Skin laufen, sollten sie ziemlich ähnlich aussehen. Dies kommt vom nativen Android-Thema, das Sie im Verzeichnis themes in unserem github-Repository herunterladen können. –