gpt4 book ai didi

java - ScrollPane 导致我的插件卡住

转载 作者:行者123 更新时间:2023-12-02 08:01:29 28 4
gpt4 key购买 nike

我使用以下代码将 ScrollPane 中的 Applet 包含到我的 Eclipse 插件 View 中:

@Override
public void createPartControl(Composite parent) {

composite = new Composite(parent, SWT.EMBEDDED);
final Frame frame = SWT_AWT.new_Frame(composite);
frame.setLayout(new BorderLayout());

Panel panel = new Panel();
panel.setSize(WIDTH, HEIGHT);
pap = new ProcessingEmbedded2();
ScrollPane pane = new ScrollPane(ScrollPane.SCROLLBARS_AS_NEEDED);

panel.setLayout(new BorderLayout());
panel.add(pap, BorderLayout.CENTER);

frame.add(pane, BorderLayout.CENTER);
pane.add(panel);
}


public class ProcessingEmbedded2 extends Applet {


}

这在 Eclipse RPC/插件开发人员中运行良好,但现在我尝试在另一个 Eclipse 客户端中运行该插件。 ScrollPane 导致插件卡住整个客户端。我确定它是 ScrollPane,因为如果我删除这部分代码(即我将小程序直接添加到面板而不使用 ScrollPane),则插件将按预期运行。有人知道导致卡住的问题吗?

最佳答案

您似乎遇到了特定于平台的 GUI 问题,该问题是由系统尝试创建 ScrollPane 引起的。

您运行的测试是一个很好的测试 - 删除 ScrollPane 以挽救崩溃肯定意味着此问题与该 GUI 组件相关……或者 ScrollPane 所依赖的某些组件。

所以下一个问题是 - ScrollPane 使用什么来构建自身?嗯,答案当然是 AWT——即 java Abstract Windowing Toolkit。

不幸的是,由于 AWT 组件与系统组件相关联,因此您可能会遇到一些它们无法正常工作的极端情况。遇到这种情况该怎么办?一种简单的解决方案是尝试使用 Swing 组件。

因此,由于我假设您在这里使用 AWT 的 ScrollPane - 我建议将其替换为 Swing JScrollPane。 根据我的经验,Swing 组件不太可能导致这些情况的怪癖。然而,每个工具包都有其优点/缺点。但根据我的经验......一般来说,如果您的程序在 AWT 组件上崩溃,则相应的 Swing 组件可能会工作得更好。

参见:http://edn.embarcadero.com/article/26970

关于java - ScrollPane 导致我的插件卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8838674/

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