2013-11-27 45 views
1

我有一个打包成jar的applet,虽然它运行(用控制台中显示的打印语句测试),但它只显示一个空白屏幕。Applet在浏览器中显示空白屏幕

这里是applet代码:

import java.awt.Color; 
import java.awt.GradientPaint; 
import java.awt.Graphics; 
import java.awt.Graphics2D; 
import java.awt.Point; 

import javax.swing.JApplet; 
import javax.swing.JButton; 
import javax.swing.JLabel; 
import javax.swing.JLayeredPane; 

public class Test extends JApplet { 
    JLayeredPane frame = new JLayeredPane(); 
    JButton button = new JButton("Test"); 
    JLabel backgroundLabel; 

    public void init() { 
      button.setBounds(10, 10, 100, 40); 

      backgroundLabel = new JLabel(){ 
        public void paintComponent(Graphics g){ 
          super.paintComponent(g); 

          Graphics2D g2d = (Graphics2D)g; 

        g2d.setPaint(new GradientPaint(
            new Point(0, 0), 
            new Color(90, 207, 233), 
            new Point(0, getHeight()), 
            Color.white)); 

        g2d.fillRect(0, 0, getWidth(), getHeight()); 

        g2d.dispose(); 
        } 
      }; 
      backgroundLabel.setBounds(0, 0, getWidth(), getHeight()); 

      frame.add(backgroundLabel, new Integer(0)); 
      frame.add(button, new Integer(1)); 

      add(frame); 
    } 
} 

这是html代码:

<applet 
    id="clientApplet" 
    codebase="test" 
    code="Test.class" 
    archive="test.jar" 
    width="820" height="600"> 
    Your browser does not support the <code>applet</code> tag. 
</applet> 

小应用程序工作正常,在Eclipse和没有错误在控制台中显示出来。任何人都可以请说出问题可能是什么?

+0

'JLayeredPane frame..'对于JLayeredPayne的实例来说这是一个非常糟糕的名字。从名字来看,我曾预期过一个'JFrame'。 –

回答

0

看起来更新已经停止<applet>标签的运行。我用<embed>代替它,现在一切都很好。

<embed id="test" 
     type="application/x-java-applet;version=1.6" 
     width="256" height="256" 
     archive="test.jar" 
     code="Test.class" 
     codebase="test" 
     pluginspage="http://java.com/download/" 
     myParam="" />