gpt4 book ai didi

java - 获取当前显示的工具提示

转载 作者:行者123 更新时间:2023-12-02 02:39:14 24 4
gpt4 key购买 nike

是否有某种方法可以将当前显示的工具提示作为字符串复制到剪贴板,而无需映射到工具提示文本区域的复杂 XY 坐标计算?这对于工具提示以一定角度显示的图表尤其具有挑战性,并且仅在显示时才捕获。例如,让 ctl-c 将显示的工具提示复制到剪贴板:

PlotThisDaysData extends JFrame implements ... KeyListener{

@Override
public void keyTyped( KeyEvent e ) {
char typed = e.getKeyChar();
if ( typed == KeyEvent.VK_C ) /*VK_C?*/ {

String tooltipStr = myChart.???(); // <<<<<<<<<<<<< get displaying tooltip <<<<

StringSelection selection = new StringSelection( tooltipStr );
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents( selection, selection );
}
}

也许在显示工具提示时会发生一些事件,以便我可以存储字符串指针并在输入 ctl-c 时使用?

example of a tooltip to capture

最佳答案

显示工具提示以响应图表的封闭 ChartPanel 接收到的鼠标事件。 。要随着鼠标移动将当前显示的工具提示复制到剪贴板,

  1. 向图表面板添加一个ChartMouseListener,如图here .

  2. 当您的听众看到所需的 ChartEntity 时,向 ChartPanel 询问相关文本并将其复制到剪贴板。

    Toolkit toolkit = Toolkit.getDefaultToolkit();
    Clipboard clipboard = toolkit.getSystemClipboard();

    @Override
    public void chartMouseMoved(ChartMouseEvent cme) {

    String t = chartPanel.getToolTipText(cme.getTrigger());
    clipboard.setContents(new StringSelection(t), null);
    }

类似的方法可以用于 key binding ,如图here 。使用图表面板的 getMousePosition() 构造所需的 MouseEvent 触发器。

  1. 获取图表面板的 InputMapActionMap 和平台的快捷方式掩码。

    InputMap im = chartPanel.getInputMap();
    ActionMap am = chartPanel.getActionMap();
    int mask = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
  2. 将所需的KeyStroke放入图表面板的InputMap

    im.put(KeyStroke.getKeyStroke(KeyEvent.VK_C, mask), "copytip");
  3. 将相应的Action放入图表面板的ActionMap

    am.put("copytip", new AbstractAction() {
    @Override
    public void actionPerformed(ActionEvent e) {
    Point p = chartPanel.getMousePosition();
    String t = chartPanel.getToolTipText(new MouseEvent(chartPanel,
    0, System.currentTimeMillis(), 0, p.x, p.y, 0, false));
    clipboard.setContents(new StringSelection(t), null);
    }
    });

避免KeyListener ,因为它需要键盘焦点。

关于java - 获取当前显示的工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45762805/

24 4 0
文章推荐: javascript - 使用 中的 SVG 是否允许点击事件传播到父处理程序?