为什么我的JFrame没有出现在基于web的Java应用程序中?
我有一个游戏应用程序,我将使用标签在web浏览器中运行。 这个程序有一个JFrame,它显示了几个选项卡,允许在整个程序中导航。 当我在本地运行程序时,它将正常工作,显示JFrame并整体工作。 但是,当我将其上传到主机并访问其链接时,JFrame将不会显示 我已经搜索了大约3个小时,根本不能为我的搜索提供正确的关键字。 我所能得到的结果是JFrame根本没有出现在本地或web应用程序中 当我从同一个.jar本地运行客户端时,客户端的外观如下: 这是客户端在web浏览器(IE、FF和Chrome)中的外观: Applet.java:为什么我的JFrame没有出现在基于web的Java应用程序中?,java,swing,applet,jframe,Java,Swing,Applet,Jframe,我有一个游戏应用程序,我将使用标签在web浏览器中运行。 这个程序有一个JFrame,它显示了几个选项卡,允许在整个程序中导航。 当我在本地运行程序时,它将正常工作,显示JFrame并整体工作。 但是,当我将其上传到主机并访问其链接时,JFrame将不会显示 我已经搜索了大约3个小时,根本不能为我的搜索提供正确的关键字。 我所能得到的结果是JFrame根本没有出现在本地或web应用程序中 当我从同一个.jar本地运行客户端时,客户端的外观如下: 这是客户端在web浏览器(IE、FF和Chrom
public class Client extends RSApplet {
public static void main(String args[]) {
try {
instance = new Client();
new UserInterface(args);
} catch(Exception e) {
e.printStackTrace();
}
}
}
GUI.java
public class GUI extends Applet implements ActionListener, WindowListener, FocusListener {
public UserInterface(String args[]) {
try {
/* ------------------------------------------------------------------------ */
/* Metal */
/* UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); */
/* System Look */
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
/* ------------------------------------------------------------------------ */
initGUI();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public void initGUI() {
try {
JFrame.setDefaultLookAndFeelDecorated(true);
JPopupMenu.setDefaultLightWeightPopupEnabled(false);
frame = new JFrame(frameTitle);
frame.setLayout(new BorderLayout());
Image icon = Toolkit.getDefaultToolkit().getImage(iconDir);
frame.setIconImage(icon);
gamePanel = new JPanel();
gamePanel.setLayout(new BorderLayout());
gamePanel.add(this);
gamePanel.setPreferredSize(new Dimension(850, 600));
frame.getContentPane().add(gamePanel, BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
if (loggedIn == false) {
System.exit(0);
} else {
if (showMessage("Are you sure you want to close the game?") == true) {
System.exit(0);
} else return;
}
}
});
initMenuBar();
frame.pack();
frame.setVisible(true);
frame.setResizable(true);
} catch (Exception e) {
e.printStackTrace();
}
}
public void initMenuBar() {
menuBar = new JMenuBar();
/** File **/
fileMenu = new JMenu("File");
String[] fileMenuItems = {
"Quit"
};
menuBar.add(fileMenu);
/** Quick Links **/
linksMenu = new JMenu("Quick Links");
String[] linksMenuItems = {
"Home", "News", "Donate"
};
menuBar.add(linksMenu);
frame.getContentPane().add(menuBar, BorderLayout.NORTH);
}
}
如果您试图将应用程序放在网页上,我的意思是作为web应用程序运行。如果是,那么您需要的是Applet或JApplet,而不是框架。框架正常工作,但如果要将其添加到网站,则需要将其设置为小程序。利用下面的链接 se6的JApplet类- JApplet/Applet教程--
祝你好运好的,我会很快读到,谢谢你的回复。这将需要我有两个不同的代码副本,因为我希望允许用户将.jar下载到他们的计算机,以便在他们选择的web浏览器之外运行。或者这会允许在web应用程序和本地运行时都绘制条吗?有一个叫做web start(jnlp)的东西,我刚刚以这种形式编写了两个应用程序,所以我真的不知道很多,但如果它不是一个非常大的应用程序,那么你可以制作两个不同的应用程序。一个是jar,另一个是小程序。我刚刚查看了您的代码,可以看到您已经开始使用小程序,但您没有必需的方法,如init()、start()和stop()。至少init()方法必须是过iddenalRight,在您第一次回复评论时,它不是一个小应用程序,运行大约356kb,它不是很大,但它不是很小。如有必要,我可以提供两份申请@第二条评论:是的,我明白你的意思,现在读图坦卡蒙如何制作一个=P