2012-07-04 170 views
0

Hı,我有一个Java小程序。在Eclıpseıt完美运行并显示所有的摆动项目,但是当我将它嵌入到html中时,该applet不会显示或仅显示浏览器中的一些项目。以下是我的代码。有人可以帮我解决我的问题吗?Java applet不在浏览器中显示

import java.applet.Applet; 
import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.ImageIcon; 
import javax.swing.JApplet; 
import javax.swing.JButton; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 
import javax.swing.SwingConstants; 

import java.applet.*; 
import java.net.*; 
public class TestApplet extends JApplet implements ActionListener { 

    Button talkToAllButton; 
    Button sendPhotoToAll; 
    int Tikla1Basim, Tikla2Basim; 
    JLabel header; 

    JLabel statusLabel; 
    JLabel posLabel; 
    JLabel idLabel; 
    JLabel iDLabel; 
    JLabel heartRateLabel; 
    JLabel heartRateLabel2; 
    JLabel backgroundLabel; 
    JButton sendPicButton; 
    JButton talkOnOffButton; 
    public void init() { 

     this.setLayout(null); 
     setSize(1200, 900); 


     idLabel=new JLabel(new ImageIcon(getImage(getDocumentBase(), "res/call_sign.png"))); 
     idLabel.setFont(new Font("Serif", Font.BOLD, 20)); 
     idLabel.setBackground(Color.white); 
     idLabel.setForeground(Color.black); 
     idLabel.setOpaque(true); 
     idLabel.setBounds(getWidth()-190,200,180,50); 
     //idLabel.setBorder(border); 
     add(idLabel); 

     iDLabel=new JLabel("NONE",JLabel.CENTER); 
     iDLabel.setFont(new Font("Serif", Font.BOLD, 20)); 
     iDLabel.setBackground(new Color(36,48,24)); 
     iDLabel.setForeground(Color.WHITE); 
     iDLabel.setOpaque(true); 
     iDLabel.setBounds(getWidth()-190,250,180,50); 
     //iDLabel.setBorder(border); 
     add(iDLabel); 

     statusLabel=new JLabel(new ImageIcon(getImage(getDocumentBase(), "res/status_alive.png"))); 
     statusLabel.setFont(new Font("Serif", Font.BOLD, 20)); 
     statusLabel.setBackground(Color.green); 
     statusLabel.setForeground(Color.black); 
     statusLabel.setOpaque(true); 
     statusLabel.setBounds(getWidth()-190,300,180,50); 
     //statusLabel.setBorder(border); 
     add(statusLabel); 

     posLabel=new JLabel("NO DATA"); 
     posLabel.setFont(new Font("Serif", Font.BOLD, 20)); 
     posLabel.setHorizontalAlignment(SwingConstants.CENTER); 
     posLabel.setBackground(Color.green); 
     posLabel.setForeground(Color.WHITE); 
     posLabel.setOpaque(true); 
     posLabel.setBounds(getWidth()-190,350,180,70); 
     //posLabel.setBorder(border); 
     add(posLabel); 

     heartRateLabel=new JLabel(new ImageIcon(getImage(getDocumentBase(), "res/hearth_rate.png"))); 
     heartRateLabel.setFont(new Font("Serif", Font.BOLD, 20)); 
     heartRateLabel.setBackground(Color.red); 
     heartRateLabel.setForeground(Color.black); 
     heartRateLabel.setOpaque(true); 
     heartRateLabel.setBounds(getWidth()-190,450,180,50); 
     //heartRateLabel.setBorder(border); 
     add(heartRateLabel); 

     heartRateLabel2=new JLabel("NO DATA",JLabel.CENTER); 
     heartRateLabel2.setFont(new Font("Serif", Font.BOLD, 20)); 
     heartRateLabel2.setBackground(new Color(180,2,2)); 
     heartRateLabel2.setForeground(Color.WHITE); 
     heartRateLabel2.setOpaque(true); 
     heartRateLabel2.setBounds(getWidth()-190,500,180,50); 
     //heartRateLabel2.setBorder(border); 
     add(heartRateLabel2); 

     sendPicButton=new JButton(new ImageIcon(getImage(getDocumentBase(), "res/send_pic.png"))); 
     sendPicButton.setFont(new Font("Serif", Font.BOLD, 20)); 
     sendPicButton.setBackground(Color.red); 
     sendPicButton.setForeground(Color.black); 
     sendPicButton.setOpaque(true); 
     sendPicButton.setBounds(getWidth()-190,580,180,50); 
     //sendPicButton.setBorder(border); 
     add(sendPicButton); 
     sendPicButton.addActionListener(this); 

     talkOnOffButton=new JButton(new ImageIcon(getImage(getDocumentBase(), "res/talk_off.png"))); 
     talkOnOffButton.setFont(new Font("Serif", Font.BOLD, 20)); 

     talkOnOffButton.setOpaque(true); 
     talkOnOffButton.setBounds(getWidth()-190,650,180,50); 
     //talkOnOffButton.setBorder(border); 
     add(talkOnOffButton); 
     talkOnOffButton.addActionListener(this); 
     //*********************************************************** 
     //isFpsLimited = true; 
     backgroundLabel=new JLabel(new ImageIcon(getImage(getDocumentBase(), "res/bg.png"))); 
     backgroundLabel.setOpaque(true); 
     backgroundLabel.setBounds(getWidth()-200,0,200,800); 
     add(backgroundLabel); 

     ImageIcon headerImg=new ImageIcon(getImage(getDocumentBase(),"res/erlink_header.png")); 
     header=new JLabel(headerImg); 
     header.setBounds(-45, -40, 1800, 200); 

     add(header); 
     sendPhotoToAll = new Button("Send Photo(All)"); 
     sendPhotoToAll.setBounds(850,40, 150, 50); 
     header.add(sendPhotoToAll); 
     talkToAllButton = new Button("Talk(All)"); 
     talkToAllButton.setBounds(850,90, 100, 50); 
     header.add(talkToAllButton); 

     sendPhotoToAll.addActionListener(this); 
     talkToAllButton.addActionListener(this); 
     /*sendPhotoToAll.setLocation(10, 10); 
     sendPhotoToAll.setSize(150, 30); 

     talkToAllButton.setLocation(10, 40); 
     talkToAllButton.setSize(250, 30);*/ 

    } 

    public void actionPerformed(ActionEvent event) { 
    //event things 
    } 
    // TODO overwrite start(), stop() and destroy() methods 
} 
+0

请参见[课:Java小程序(http://docs.oracle.com/javase/tutorial/deployment/applet/) – user1329572

+0

不要混用有没有充分的理由Swing组件AWT。 'Button' - >'JButton'。我在屏幕上看到您的GUI,但很难相信您希望安排这些组件。你可以提供ASCII艺术或绘图哦GUI的外观应该如何? –

回答

2
  1. 使用的布局。
  2. 在添加所有组件后调用validate()
  3. 在EDT上构建GUI。有关更多详细信息,请参阅Concurrency in Swing
+0

三个好点 – mKorbel

+0

但我看到了布局的例子。实际上避免使用布局将会使我的工作减轻很多。我在顶部有一个大横幅,整个小程序的宽度,右侧有一个按钮列表。我不确定我在这里做错了什么,以便不使用布局。 – dramaticlook

+0

*“但是我看到了一些没有布局的例子。”*它们是不好的例子。别理他们。 *“实际上避免使用布局将会减轻我的工作量。”*不,它不会。确保开发过程中,但一旦部署完成,它将“全部崩溃”。那些你看过的'例子'的提供者没有指出。如果你正在设计一个Java GUI来部署到2个或更多的人,布局是必不可少的。看到[setLayout(null)从来没有必要。永远!](https://forums.oracle.com/forums/thread.jspa?threadID=1351374)更多.. –