3

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

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

我的问题是:

页面加载后,如何获取打印机列表并在我的 HTML 页面上使用它?单击按钮后,如何将参数发送到我的小程序的第二种方法?

4

3 回答 3

1

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

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

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

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

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

于 2013-01-26T11:39:12.690 回答
1

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

于 2013-01-26T11:40:28.173 回答
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> 
于 2013-02-01T15:37:54.027 回答