当组件被设置为容器中的主要组件时,永远不会调用其longPointerPress()
方法。
考虑以下示例:
final Button lead = new Button("Lead") {
@Override
public void longPointerPress(int x, int y) {
super.longPointerPress(x, y);
// Never invoked!!!
Dialog.show("", "Long pointer press at (" + x + "," + y + ")", "OK", null);
}};
// --------------------------------
// | Label | Lead | Another label |
// --------------------------------
final Container c = BoxLayout.encloseX(new Label("Label"), lead, new Label("Another label"));
c.setLeadComponent(lead);
永远不会调用longPointerPress()
。但是,如果我设置c.setLeadComponent(null)
,则会调用长按。但是,我失去了主要成分的概念。
这是一个错误吗?如果没有,我怎么才能意识到我想要做什么?
答案 0 :(得分:1)
我认为你应该这样试试
Button lead = new Button ....
lead.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
if (event.isLongEvent()) {
//do long click event stuff
}else{
//do normal click event stuff or blank if nothing to do
}
}
干杯。
答案 1 :(得分:0)
这不是一个错误,它是一个修复。这有效:
Form hi = new Form("LongPress", new BoxLayout(BoxLayout.Y_AXIS));
hi.add(new MultiButton("Long Press") {
@Override
public void longPointerPress(int x, int y) {
System.out.println("Long press");
}
});
在引线Container
上调用长按指针。