java - 在 html 中嵌入 java swing

标签 java html swing applet

我的 java swing 应用程序有以下代码,它在 eclipse IDE 中执行得很好,但是当我将它嵌入 HTML 中然后不在浏览器中执行时,只显示空白框。

Java Swing 代码:

import javax.swing.*;
import java.applet.*;
import java.awt.*;

public class Form extends JApplet{

public void init()
{
JFrame frame = new JFrame("Form");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
JPanel panel = new JPanel();

JLabel label1 = new JLabel("");
JTextField field = new JTextField(20);
//JButton button1 = new JButton("OK");
//JButton button2 = new JButton("Cancel");
Container c;
c=frame.getContentPane();
c.setLayout(null);
JLabel name=new JLabel("Name :");
JLabel compcode=new JLabel("Company Code :");
JLabel cardno=new JLabel("Card Number: ");
JLabel cardtype=new JLabel("Card Type :");
JLabel pin=new JLabel("Pin :");
JLabel bldgrp=new JLabel("Blood Group :");
JLabel empcode=new JLabel("Employee Code :");
JLabel dob=new JLabel("DOB :");
JLabel valupto=new JLabel("Valid Upto :");
JLabel jdate=new JLabel("Joining Date :");
JLabel dept=new JLabel("Department :");
JLabel uid=new JLabel("UID :");

JTextField nametxt=new JTextField(10);
JComboBox compcodetxt=new JComboBox();
JTextField cardnumtxt=new JTextField(10);
JTextField cardtypetxt=new JTextField(10);
JTextField pintxt=new JTextField(10);
JComboBox bldgrptxt=new JComboBox();
JTextField empcodetxt=new JTextField(10);
JTextField dobtxt=new JTextField(10);
JTextField valuptotxt=new JTextField(10);
JTextField jdatetxt=new JTextField(10);
JTextField depttxt=new JTextField(10);
JTextField uidtxt=new JTextField(10);



name.setBounds(10, 10, 100, 25);
nametxt.setBounds(110, 10, 100, 25);
compcode.setBounds(10, 40, 100, 25);
compcodetxt.setBounds(110, 40, 100, 25);
cardno.setBounds(10, 70, 100, 25);
cardnumtxt.setBounds(110, 70, 100, 25);
pin.setBounds(10, 110, 100, 25);
pintxt.setBounds(110, 110, 100, 25);
bldgrp.setBounds(10, 140, 100, 25);
bldgrptxt.setBounds(110, 140, 100, 25);
empcode.setBounds(10, 170, 100, 25);
empcodetxt.setBounds(110, 170, 100, 25);
dob.setBounds(10, 200, 100, 25);
dobtxt.setBounds(110, 200, 100, 25);
valupto.setBounds(10, 230, 100, 25);
valuptotxt.setBounds(110, 230, 100, 25);
jdate.setBounds(10, 260, 100, 25);
jdatetxt.setBounds(110, 260, 100, 25);
dept.setBounds(10, 290, 100, 25);
depttxt.setBounds(110, 290, 100, 25);
uid.setBounds(10, 320, 100, 25);
uidtxt.setBounds(110, 320, 100, 25);

//button1.setBounds(10, 50, 75, 25);
//button2.setBounds(10, 70, 75, 25);

c.add(name); c.add(nametxt);
c.add(compcode); c.add(compcodetxt);
c.add(cardno); c.add(cardnumtxt);
c.add(pin); c.add(pintxt);
c.add(bldgrp); c.add(bldgrptxt);
c.add(empcode); c.add(empcodetxt);
c.add(dob); c.add(dobtxt);
c.add(valupto); c.add(valuptotxt);
c.add(jdate); c.add(jdatetxt);
c.add(dept); c.add(depttxt);
c.add(uid); c.add(uidtxt);


//panel.add(button1);
//panel.add(button2);
//frame.add(panel);
frame.setSize(350,400);
//frame.pack();
frame.setVisible(true);
  }
}

嵌入的HTML代码如下:

<html>
<head>
<title>Test Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>

    <applet Archive ="Form.jar" Code="com.vms.util.Form" WIDTH="250" HEIGHT="300" >
    </applet>


</html>

我使用包 com.vms.util 为我的 swing 类 Form.jar 生成了 JAR 我把它放在我的 D: drive form 目录中,并将所有 html 和 jar 放在 form 目录中。

我可以在 HTML 中运行我的 swing 应用程序,我该如何运行它?

当我使用 appletviewer 运行上述代码时出现以下错误

D:\form>appletviewer Form2.html
java.security.AccessControlException: access denied (java.lang.RuntimePermission
 exitVM.0)
        at java.security.AccessControlContext.checkPermission(AccessControlConte
xt.java:374)
        at java.security.AccessController.checkPermission(AccessController.java:
546)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
        at java.lang.SecurityManager.checkExit(SecurityManager.java:744)
        at javax.swing.JFrame.setDefaultCloseOperation(JFrame.java:372)
        at Form.init(Form.java:10)
        at sun.applet.AppletPanel.run(AppletPanel.java:424)
        at java.lang.Thread.run(Thread.java:662)

最佳答案

评论下一行

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

不允许小程序(除非直接修改客户端计算机上的 Java 安全策略)执行一些关键调用。即使使用签名的小程序。

在您的情况下,在 javax.swing.JFrame.setDefaultCloseOperation 处触发异常

关于java - 在 html 中嵌入 java swing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14169370/

相关文章:

Java get GET Restful Service 的响应时间

java - Tomcat 保存日志历史

java - 无法在 UserRecyclerAdapter 类中使用 "custom_list_users.xml"来膨胀 fragment

java swing - 在 java swing 中创建一个类似旋转木马的按钮

java - JDialog 闪烁/闪烁作为通知

java.util.Date 和 getYear()

jQuery 附加到父级

javascript - 未知提供商 : myFactProvider <- myFact <- thirdCtrl

html - 从文本输入中删除填充

java - 从 getName() 的结果中刷新选项卡名称