我使用LayeredLayout在TextArea的右上角用一个小按钮覆盖TextArea(该按钮用于插入时间戳以方便日期手动文本条目)。
我希望小按钮能够在用户点击“'在它上面,并允许用户单击下面的TextArea手动编辑文本。但是,当我使用LayeredLayout时,只有最后添加的组件才会收到事件。意味着只有textArea处于活动状态且无法按下小按钮,或者按下按钮,但用户无法单击TextArea来启动编辑。希望描述清楚明白。
据我所知,其他现有的布局都不适合这种情况。有没有办法实现这个目标?
提前感谢任何想法或建议。
答案 0 :(得分:1)
点击时都会收到事件,我们经常使用此模式。我假设您在编辑时尝试按下按钮,这是有问题的,因为编辑委托指针事件到本机OS编辑代码。
见:
Form current = new Form("TextAreaButton", BoxLayout.y());
TextArea ta = new TextArea("Text of Text Area");
ta.addActionListener(e -> Log.p("Text is: " + ta.getText()));
Button b = new Button("");
b.addActionListener(e -> ta.setText(""));
FontImage.setMaterialIcon(b, FontImage.MATERIAL_CLEAR);
current.add(
LayeredLayout.encloseIn(ta,
BorderLayout.east(b))
);
current.show();