我有下面的示例代码:
hi = new Form("Click Test Application", BoxLayout.y());
Label l = new Label("Click by Program");
hi.add(l);
b1 = new Button("Click Button 2","DescButton");
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ev){
hi.pointerPressed(b2.getAbsoluteX(), b2.getAbsoluteY());
}
});
hi.add(b1);
b2 = new Button("Button_2","DescButton");
b2.addPointerPressedListener(new ActionListener(){
public void actionPerformed(ActionEvent ev){
b2.setText("Button 2 Pressed");
}
});
b2.addPointerReleasedListener(new ActionListener(){
public void actionPerformed(ActionEvent ev){
b2.setText("Button 2 Released");
}
});
hi.add(b2);
hi.show();
单击 b1 后,b2 按钮显示“按钮 2 已按下”。 单击 b2 后,b2 按钮显示“按钮 2 已释放”。
addActionListener 和 addPointerPressedListener 有什么区别? 如何通过单击 b1 按钮将单击事件(addActionListener,而不是 addPointerPressedListener)发送到 b2?
或者我应该在b1中调用pointerPressed和pointerReleased来模拟点击事件?
在
Button
您有:
b2.press();
b2.release();
触发此类事件的正确方法是哪种。
如果您使用按钮以外的组件,则始终在按下和释放时触发。
请注意,UI 事件几乎总是在发布时实现,很少在发布时实现。唯一的例外是只要按钮保持按下状态,诸如滚动之类的连续事件就会不断发生。
我们使用released有两个原因: