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
}
2
  • Please see Lesson: Java Applets Commented Jul 4, 2012 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? Commented Jul 5, 2012 at 4:56

1 Answer 1

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.
Sign up to request clarification or add additional context in comments.

5 Comments

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.
"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! for more..
..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.
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?
Java has a ScriptEngine but I doubt it would be enough to support Google maps. This is a BIG question.. ;)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.