gpt4 book ai didi

java - 使用 JxBrowser HEAVYWEIGHT 时禁用 Swing 中的拖放

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:14:24 26 4
gpt4 key购买 nike

我正在尝试让拖放功能与 Linux 中的 JxBrowser 一起使用。我希望在一个选项卡中能够拖放我的 swing 组件,并在另一个选项卡中拥有 jxbrowser。但是,当将 jxbrowser 添加到另一个选项卡时,拖放操作将停止。

尝试在“文本”选项卡中拖动标签时,此代码会重现问题:

public class TabbedPaneSample {
public static void main(String[] args) {
Browser browser = new Browser(BrowserType.HEAVYWEIGHT);

JLabel label = new JLabel("Label Text");
label.setTransferHandler(new TransferHandler("text"));
label.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent evt) {
JComponent comp = (JComponent) evt.getSource();
TransferHandler th = comp.getTransferHandler();
th.exportAsDrag(comp, evt, TransferHandler.COPY);
}
});

JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab("Browser", new BrowserView(browser));
tabbedPane.addTab("Text", label);

JFrame frame = new JFrame();
frame.getContentPane().add(tabbedPane, BorderLayout.CENTER);
frame.setSize(800, 600);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

browser.loadURL("https://www.google.com");
}
}

BrowserType.HEAVYWEIGHT 更改为 BrowserType.LIGHTWEIGHT 使其工作。

我能以某种方式解决这个问题吗?

最佳答案

不幸的是,目前,在 JxBrowser 的重量级模式下,拖放功能无法在 Linux 上运行。我们已经有一个关于此的开放任务,并将在未来的 JxBrowser 版本之一中实现此功能。

目前,作为一种解决方法,我建议您尝试一种轻量级模式,因为在 Linux 上拖放应该可以在这种模式下工作。

至于轻量级模式比重量级模式慢,也许你可以尝试加速轻量级模式,它快约 30%:https://jxbrowser.support.teamdev.com/support/solutions/articles/9000104965-accelerated-lightweight-rendering

关于java - 使用 JxBrowser HEAVYWEIGHT 时禁用 Swing 中的拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55373315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com