java - JFreeChart:在 SWT 中向 ChartComposite 添加关键监听器

标签 java swt jfreechart keylistener

我在使用 SWT 设置 ChartComposite 对象的关键监听器时遇到了一些麻烦。 ChartComposite 支持此功能吗?

我的代码如下所示:

chartComposite.addKeyListener(new KeyListener() {

    @Override
    public void keyReleased(KeyEvent e) {
        System.out.print("Key released: " + e.character);               
    }

    @Override
    public void keyPressed(KeyEvent e) {
        System.out.print("Key pressed: " + e.character);
    }
});

我认为这就是添加关键监听器的方式,尽管如此,此代码从未被调用。
我在网络上看到了一些关键监听器的实现,但它们都引用了 SwingAWT
我的问题是如何在 SWT 中做到这一点?

谢谢

最佳答案

ChartComposite 未记录在库的 Javadoc 中,感谢@Sorceror 提供的link我找到了正确的方法。

public class MyChartComposite extends ChartComposite implements KeyListener
{

    public MyChartComposite(Composite comp, int style, JFreeChart chart, 
                                                      boolean useBuffer){
        super(comp, style, chart, useBuffer);
        addSWTListener(this);
    }   

    @Override
    public void keyPressed(org.eclipse.swt.events.KeyEvent e) {
        System.out.print("Key released: " + e.character);

    }

    @Override
    public void keyReleased(org.eclipse.swt.events.KeyEvent e) {
        System.out.print("Key pressed: " + e.character);
    }
}

我选择扩展 ChartComposite 的原因只是为了以更简洁的方式向其添加更多功能。
现在您可以使用上面声明的类来实例化将捕获关键事件的对象:

chartComposite = new MyChartComposite(parent, SWT.NONE, chart, true);

关于java - JFreeChart:在 SWT 中向 ChartComposite 添加关键监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8592051/

相关文章:

java - int 数组到 ArrayList 的转换

Java 类转换规则

java - 由于环境变量,Eclipse 无法打开

java - SWT获取系统文件夹图像?

java - SWT:如何在 OS X 上使用带参数的 Program.launch()?

java - Netbeans 8.0.2 和 JDK 1.8.0 中的 JFreechart 不工作

java - 图表面板中间的 JFreeChart AreaChart

Java resultSet.updateRow() 不更新数据库

java - eclipse插件如何通过代码在IDE中打开文件

java - JFreeChart 中是否可以有两个(X 和 Y)CategoryAxes?