如何在HTML中调用Java小程序方法

问题描述 投票:0回答:3

我有一个小程序,其中有两种我想使用的方法。在第一种方法中,我获取客户端打印机列表。

我想在我的 HTML 页面上以组合方式使用此打印机列表。用户应该从此组合中选择打印机。之后,用户将单击按钮来执行一些操作。单击该按钮并完成这些操作后,我想打电话 我的小程序的第二种方法,它获取两个参数,一个是文件对象,另一个是用户已经选择的打印机对象。

我的问题是:

如何获取打印机列表并在页面加载后在 HTML 页面上使用它?

点击按钮后如何向小程序的第二个方法发送参数?

java javascript html applet awt
3个回答
1
投票

不要使用浏览器组合框。直接在小程序中使用JComboBoxChoice,这样您足不出户即可完成所有操作。正如 @Roman C 所描述的那样,这是可能的,但对于您描述的任务来说似乎太复杂了。


1
投票

在 html/jsp 中使用对象 id 标签

<object id="appletId" type="application/x-java-applet" 

要获取打印机列表,您应该调用小程序方法

<script type="text/javascript">
function getPrinters(){
    return appletId.getPrinters();
}
</script>

假设小程序具有返回字符串数组的公共方法

getPrinters


1
投票
To have my applet work;
1- I exported the applet as jar file(named as printApplet.jar) and copied it under the same folder as my xhtml page.
2- I put the applet in xhtml as below;
         <applet id="myApplet"
            code="com.xxx.yyy.console.action.PrintApplet"
            archive="printApplet.jar" width="1" height="1">         
        </applet>
3- I created a method `enter code here`in the applet which gets printer names as string and has comma(,) between the names. 
4- I called the applet methods using javascript as below;
<script type="text/javascript" >
    //<![CDATA[
    function getPrinters() {
        var aplt = document.getElementById("myApplet");     
        var printers = aplt.getPrinterNames();
        var p = printers.split(',');
        var c = document.getElementById("combo");
        for ( var i = 0; i < p.length; i++) {
            var o = document.createElement("option");
            o.text = p[i];
            o.value = i;
            try {
                c.add(o, null); //Standard 
            } catch (error) {
                c.add(o); // IE only
            }
        }
    }   
    //]]>
</script> 
© www.soinside.com 2019 - 2024. All rights reserved.