- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我卡在了鼠标滚轮事件中,它只是没有触发。我使用 swt_awt 桥,所以我可以在我的 RCP 应用程序中使用 swing 组件。我测试了我能找到的所有东西,但没有成功。因为我的应用程序非常复杂,所以我创建了一个简化版本的问题,如果您想帮助我,它也应该可以帮助您确定方向。
现在这个简化的问题是,我希望我的文本区域(或滚动 Pane )捕捉鼠标滚轮事件。但是这些事件丢失了。
import java.awt.Frame;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Shell;
public class Main {
protected Shell shell;
/**
* Launch the application.
* @param args
*/
public static void main(String[] args) {
try {
Main window = new Main();
window.open();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Open the window.
*/
public void open() {
Display display = Display.getDefault();
createContents();
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
/**
* Create contents of the window.
*/
protected void createContents() {
shell = new Shell();
shell.setSize(450, 300);
shell.setText("SWT Application");
shell.setLayout(new GridLayout(3, false));
List list = new List(shell, SWT.BORDER);
list.setLayoutData(new GridData(GridData.FILL_VERTICAL));
list.add("Something");
Composite composite = new Composite(shell, SWT.EMBEDDED);
composite.setLayoutData(new GridData(GridData.FILL_BOTH));
Frame graphFrame = SWT_AWT.new_Frame(composite);
final JTextArea textarea = new JTextArea(60, 80);
JScrollPane scrollpane = new JScrollPane(textarea);
graphFrame.add(scrollpane);
textarea.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent arg0) {
textarea.setText(textarea.getText() + "Mouse clicked.\n\r");
}
@Override
public void mouseEntered(MouseEvent arg0) {
textarea.setText(textarea.getText() + "Mouse is in.\n\r");
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
});
textarea.addMouseWheelListener(new MouseWheelListener() {
@Override
public void mouseWheelMoved(MouseWheelEvent arg0) {
textarea.setText(textarea.getText() + "Mouse wheel activated.\n\r");
}
});
}
}
编辑:我发现 Panel 能够捕获 awt 事件,但是任何扩展 JComponent 的类(就像我的组件所做的那样)都会以某种方式释放这些事件。我还设法创建了一个丑陋的 hack,在我单击我的 JComponent 后,我在我的 swt 组合上强制聚焦。然后我至少可以直接从 swt 事件监听器监听 swt 事件并使用我的 JComponent。我仍然希望能够直接在 JComponent 上捕获 awt 鼠标事件的解决方案。
最佳答案
您可能遇到了这个问题:http://code.google.com/p/gama-platform/issues/detail?id=84 . http://code.google.com/p/gama-platform/issues/detail?id=84#c13 中描述了解决方法(链接到这个问题)。
关于java - MouseWheel 事件不会在 SWT-AWT 组件中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7567305/
我正在将我的项目转换为 cordova 应用程序。但我陷入了鼠标滚轮事件。 Cordova 的这个事件有什么相同之处? 我有一个 Canvas 和上面的一些物体。我使用鼠标滚轮事件放大/缩小。我想将它
有什么方法可以使用子上的鼠标滚轮处理程序来确定鼠标是向上还是向下滚动?例如 Private Sub PictureBox1_MouseWheel(ByVal sender As Object, ByV
我正在尝试为 svg 实现鼠标滚轮事件。我正在使用下面的代码。如果我使用 $(document).bind() ,这可以正常工作,但如果我使用 svg id svgmain ,它就不起作用。我希望鼠标
我有一个 Panel,其中 AutoScroll 为真。该面板包含许多较小的面板,它们像瓷砖一样填充所有可用空间。当要显示的子面板太多时,我会按预期获得垂直滚动条。 这些“图 block ”中的每一个
场景: 我需要创建一个由鼠标滚轮触发的曲线动画(弧形)。 所以,我想出了一些代码。 See demo here var arc = { center: [-200, ($(window).he
一段时间以来,我一直在使用 Robot 类模拟鼠标事件,一切顺利,直到我尝试使用 mouseWheel 函数进行滚动。我只有这条简单的线: Robot robot = new Robot();
长话短说,我正在尝试将“鼠标滚轮”事件绑定(bind)到带有滚动条的 div。 当我在我创建的插件之外使用它时,我的代码可以工作,但是当我尝试将它变成插件时,它什么也不做。我尝试将“鼠标滚轮”更改为单
我目前在我的页面顶部有一个灵活的 slider ,它应该在滚动时改变幻灯片,并且在某个点之后它应该回到正常的滚动行为。 我想做的是最初锁定滚动(是的,我知道改变滚动行为对用户体验来说是一件可怕的事情,
我创建了一个简单的应用程序,用于使用鼠标滚轮缩放图片框内的图像。它在我的开发笔记本电脑 (Win10) 上完美运行。但是当我在我的台式电脑(Win7)上运行它时,缩放(使用鼠标滚轮)功能不起作用。 下
我在下面使用下面的代码,在不同的方向滚动两个 div () 但我很想知道你是否可以限制滚动,这样它每次滚动只触发一次(而不是不断滚动并发送我的函数进入无限循环。 $('.page-left, .pag
我有一个 Windows 窗体(在 C#.NET 中工作)。 该表单顶部有几个面板,底部有一些 ComboBoxes 和 DataGridViews。 我想在顶部面板上使用滚动事件,但是如果选择例如C
我有一个 WPF 应用程序,它使用 WindowsFormsHost 控件来承载 Windows.Forms 控件。 我试图实现 MouseWheel 事件 - 但似乎 MouseWheel 事件从未
嗨,我有一个表单,里面有几个框架。 对于某些框架,我希望滚动内容(或至少处理鼠标滚轮事件)。 我尝试过以下方法: 只需为每个帧分配一个 OnMouseWheel 事件处理程序 重写父窗体的 Mouse
我有一个 StackPanel,里面有一个 Listview。 我希望能够在窗口内滚动,以更改 selectedItem。 澄清; 我想在滚动鼠标滚轮时更改我的 ViewModels Selected
如何设置 GNU screen 以允许鼠标滚轮在回滚缓冲区中滚动?我尝试在 Google 上搜索此事,但大多数点击都是关于如何允许 screen 内的应用程序使用滚轮。 最佳答案 我相信您可以将这样的
有很多关于如何水平滚动 div 内容的示例。问题是,当您水平滚动的元素位于本身可垂直滚动的页面中间时(由于其内容比窗口大小长),页面会垂直滚动,div 的内容也会水平滚动。 示例如下:http://j
我有一个水平滚动的网站。我使用 mousewheel.js 通过鼠标滚轮水平滚动(或上下滚动)。我正在使用 CSS Tricks 中的片段像这样: $("body").mousewheel(funct
我正在尝试处理 Safari 上的 mouseWheel 事件。您可以在下面看到我的完整功能示例 hmtl5/js 代码,用于测试 mouseWheel 事件。 我的代码在每个 mouseWheel
我正在为小型企业开发应用程序,但我遇到了水平滚动查看器的问题。 水平滚动查看器出现在屏幕上,但鼠标滚轮不起作用。 我有这个 XAML 代码:
我正在创建一个 UserControl,它应该在鼠标悬停在控件上并且 MouseWheel 旋转时使用react。 目前我正在这样做,如下所示: public MyUserControl()
我是一名优秀的程序员,十分优秀!