代号一个指针弹出

时间:2017-04-09 16:50:45

标签: codenameone

我想在搜索文本框中实现以下弹出窗口。我尽可能地尝试了一切,并遵循代号为一个文件解释的代码

   Dialog d = new Dialog("Popup Title");
   TextArea popupBody = new TextArea("This is the body of the popup", 3, 10);
   popupBody.setUIID("PopupBody");
   popupBody.setEditable(false);
   d.setLayout(new BorderLayout());
   d.add(BorderLayout.CENTER, popupBody);
   d.showPopupDialog(showPopup);

这是我想要实现的弹出窗口。请指教。 谢谢。

enter image description here

2 个答案:

答案 0 :(得分:2)

假设showPopup是要显示指针弹出窗口的TextField,那么这看起来是正确的。

然而,为了显示"指针"您需要在主题中设置样式以支持此功能。您需要设置" PopupDialogArrowBool​​"到主题常量中的true,并为顶部,左侧,右侧和底部箭头提供图像,并将它们添加到主题常量中作为" PopupDialogArrowTopImage"," PopupDialogArrowLeftImage" ," PopupDialogArrowRightImage"," PopupDialogArrowBottomImage"常数分别。

为确保您的箭头与弹出对话框边框/背景相匹配,您还应该使用与您的箭头样式匹配的9件图像边框自定义/覆盖PopupDialog样式的边框。

我们希望制作这种"指针"弹出窗口在未来更容易实现,但就目前而言,这是实现您想要的最佳方式。

答案 1 :(得分:0)

可以通过简单的技巧添加向上(向下,向侧面)的指向三角形。

我已经在一个简单的绘画应用程序中创建了三角形,并将其添加到标签中。然后,我将标签和文本字段都添加到了容器中,并将容器添加到了对话框中。

这是代码:

Button buttonClose = new Button("  Close");
CheckBox checkBoxDialog = new CheckBox("Don't show anymore");
Container containerDialog = new Container(new BoxLayout(BoxLayout.Y_AXIS)); 
Dialog dialog = new Dialog();
Image imgageBackground = Image.createImage("/triangle.png");
Label label = new Label();
TextField textField = new TextField("Some text");

containerDialog.setUIID("ContainerDialog");

dialog.setDisposeWhenPointerOutOfBounds(false);

label.getAllStyles().setAlignment(Component.CENTER);
label.getAllStyles().setPadding(0, 0, 0, 0);
label.getAllStyles().setMargin(0, 0, 0, 0);
label.setIcon(imgageBackground);

containerDialog.
    add(label).
    add(textField).
    add(buttonClose).
    add(checkBoxDialog);

dialog.add(containerDialog);

enter image description here