首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java不响应webkit浏览器中的重绘请求

java不响应webkit浏览器中的重绘请求
EN

Stack Overflow用户
提问于 2010-10-07 18:27:31
回答 1查看 1.2K关注 0票数 0

我目前有一个很小的Java applet,我正在编写它,以浏览器中立的方式解决我们公司intranet中的一个特定问题。这以前是用ActiveX来完成的,但是我们想让人们远离IE。显然,该代码对于公众消费是不安全的,但在受控制的情况下是有用的。本质上,我希望用户能够单击他们的链接,并根据AJAX调用返回的数据打开安装在本地机器上的应用程序。这是一个签名的Java applet,证书已在本地机器上被接受。

目前,这在IE和Opera中工作得很好,但在Chrome和Safari中却失败了。看起来,cause ()方法实际上并不会导致重绘,这是我正在努力解决的。下面是applet代码:

代码语言:javascript
复制
import java.applet.Applet;
import java.awt.Graphics;
import java.util.*;

public class OdehAppLauncher extends Applet {

    private ArrayList<String> toRun = null;

    public void paint(Graphics g) {
        System.out.println("-----painting");
        try {
            if (toRun != null) {
                new ProcessBuilder(toRun).start();
                toRun = null;
            }

        } catch (Exception e) {
            System.out.println("-----Exception e = " + e);
            e.printStackTrace();
        }
    }

    public void runApp(String appName, String args) {
        System.out.println("-----running app: " + appName);
        toRun = new ArrayList<String>(2);
        toRun.add(appName);
        toRun.add(args);
        System.out.println("-----triggering a repaint...");
        repaint();
    }
}

以下是调用runApp方法时四个测试浏览器中每个浏览器的最后几行Java:

IE9(测试版)- works:

basic: Applet启动 basic:告诉客户端applet已经启动。 -绘画 -运行应用程序: notepad.exe -绘画

Safari 5.0.2 (7533.18.5) -失败

liveconnect: JavaScript:默认安全策略= -运行应用程序: notepad.exe

Opera 10.62 - works

basic: Applet启动 basic:告诉客户端applet已经启动。 -绘画 -绘画 -绘画 -运行应用程序: notepad.exe -绘画

Chrome 6.0.472.63 -失败

basic: Applet启动 basic:告诉客户端applet已经启动。 -运行应用程序: notepad.exe

请让我知道,如果你能想到任何原因,这是为什么这是不一贯的(或更好的方式来做这一点)。我还应该指出,我尝试过直接从runApp调用启动进程,但这是普遍失败的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-08 15:00:27

也许这个链接给出了一些提示。例如:

注意:如果在处理初始重绘请求之前,在组件上发生了多次重绘()调用,则可能将多个请求折叠到一个调用update()中。确定何时应折叠多个请求的算法依赖于实现。如果折叠了多个请求,则生成的更新矩形将等于折叠请求中包含的矩形的合并。

您可能需要检查applet是否可见,最近是否有油漆,以及update(图形)是否被调用.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3884665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档