我想在搜索文本框中实现以下弹出窗口。我尽可能地尝试了一切,并遵循代号为一个文件解释的代码
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);
这是我想要实现的弹出窗口。请指教。 谢谢。
答案 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);