0

Hı, I have a java applet. On Eclıpse ıt runs perfectly and displays all the swing items but when I embed it to the html, the applet does not display or it displays just a few of the items in the browser. Below is my code. Can somebody please help me with my problem?

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
}
user1329572
  • 6,176
  • 5
  • 29
  • 39
dramaticlook
  • 653
  • 1
  • 12
  • 39
  • Please see [Lesson: Java Applets](http://docs.oracle.com/javase/tutorial/deployment/applet/) – user1329572 Jul 04 '12 at 20:31
  • Don't mix AWT with Swing components without good cause. `Button` -> `JButton`. I see your GUI on-screen but find it hard to believe that is how you want the components arranged. Can you provide ASCII art or a drawing oh how the GUI should look? – Andrew Thompson Jul 05 '12 at 04:56

1 Answers1

2
  1. Use layouts.
  2. Call validate() after all components are added.
  3. Construct the GUI on the EDT. See Concurrency in Swing for more details.
Andrew Thompson
  • 168,117
  • 40
  • 217
  • 433
  • But Ive seen examples wıthout layouts. Actually avoiding the use of Layouts wıll ease my job a lot. I have a large banner on the top with the width of the whole applet and on the right side I have a list of buttons. I am not sure what I am doing wrong here in order to not to use layouts. – dramaticlook Jul 04 '12 at 21:23
  • *"But Ive seen examples wıthout layouts."* They are bad examples. Ignore them. *"Actually avoiding the use of Layouts wıll ease my job a lot."* No it won't. During development sure, but once you deploy, it will 'all fall apart'. That is what the providers of those 'examples' you've seen, failed to point out. If you are designing a Java GUI to deploy to 2 or more people, layouts are essential. See [setLayout(null) is never necessary. Ever!](https://forums.oracle.com/forums/thread.jspa?threadID=1351374) for more.. – Andrew Thompson Jul 05 '12 at 04:44
  • ..and as an aside. You say 'easier' yet you asked a question here about how to fix the 'random errors' in the GUI. Seems using `null` layouts is **already** slowing development. – Andrew Thompson Jul 05 '12 at 04:47
  • Yeah seems you are right. Im about to complete the applet. I want to ask another question just to have your opinion about it. I have an empty rectangle in the applet and I want to place a javascript using google maps3 api. What do you think will be the best way to embed this to my applet? – dramaticlook Jul 05 '12 at 13:55
  • Java has a `ScriptEngine` but I doubt it would be enough to support Google maps. This is a BIG question.. ;) – Andrew Thompson Jul 05 '12 at 14:08