Gal*_*sin 4 java keyboard swt canvas
当我同时按下CTRL +滚动鼠标滚轮时,它可以正常工作但是当我释放CTRL键并继续滚动它仍然有效.我希望它只在CTRL和鼠标滚轮同时滚动时才能工作.
addKeyListener(new KeyListener() {
@Override
public void keyPressed(KeyEvent e) {
addMouseWheelListener(new MouseWheelListener() {
@Override
public void mouseScrolled(MouseEvent g) {
if(e.keyCode == SWT.CTRL){
if(g.count > 0){
System.out.println("up");
int width = getSize().x;
int height = getSize().y;
setSize((int)(width * 1.05), (int)(height * 1.05));
}
else {
System.out.println("down");
int width = getSize().x;
int height = getSize().y;
setSize((int)(width * 0.95), (int)(height * 0.95));
}
}
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
小智 8
您不必添加KeyListener.只需检查滚动时按下的键盘按钮的状态掩码.状态掩码在MouseScrolled方法的MouseEvent参数中传递.
addMouseWheelListener(new MouseWheelListener() {
@Override
public void mouseScrolled(MouseEvent g) {
if((g.stateMask & SWT.CONTROL) == SWT.CONTROL) {
performZoom(g.count);
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1069 次 |
| 最近记录: |