Java Applet - jak utworzyć okno i layout

0

Witam, chce napisać applet docelowo składający się z kilku klas. Każda klasa = inny wygląd appletu (przyciski etc.). Czytałem co nieco i szczerze mówiąc zagubiłem się. Wiem, że applet musi startować z metody init() a nie main() jak normalny program.

Spłodziłem coś takiego :

KlasaGlowna.java

import java.awt.EventQueue;
import javax.swing.*;

public class KlasaGlowna extends JApplet {
	private static final long serialVersionUID = 1L;

	public void init(){
	     EventQueue.invokeLater(new Runnable() {  
	            @Override  
	            public void run() {  
	               // dodaj switch'a na argument
	               // param1 = 1 => cTest();
	               // param1 = 2 => cObsluga();
	               // param1 = 3 => cObliczenia();
	            	new cTest();  
	            }  
	        });  
	}
}

cTest.java

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class cTest extends JFrame {

	private static final long serialVersionUID = 1L;
	
	public cTest(){
        super( "Not Hello World" );  
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        setSize(300, 300);  
        setLocation(50,50);  
        setLayout(new FlowLayout());  
  
        add(new JButton("Przycisk 1"));  
        add(new JButton("Przycisk 2"));  
        add(new JButton("Przycisk 3"));  
  
        setVisible(true);   
	}
}

Problem w tym, że teraz pod odpaleniu appletu w Eclipse - pokazują się dwa okienka. Jedno puste, i drugie z utworzonymi przyciskami :/

Jak to rozwiązać ? Chce uzyskać różne wyglądy appletu w zależności od podanego parametru. Np. param1 =1 - owe 3 przyciski, param1 = 2 np. same TextBoxy, param1= 3 same TLabel czy jak to się tam zwie w javie. Proszę o pomoc.

0

W jaki sposób jest podawany parametr? Nie korzystaj raczej w aplecie z obiektów JFrame, aplet dostaje miejsce w oknie przeglądarki i tam umieszczaj komponenty.

0

Parametr przekazuję z przeglądarki do appletu poprzez :

String param1 = getParameter("parametr1");

Podpowiedz proszę jak rozwiązać mój problem. Potrzebuję osobne klasy dla każdego layoutu, żeby się nie pogubić - a niestety jeżeli chodzi o javę jestem dość zielony.

0

Bez sprawdzania czy na stronie jest znacznik z parametrem i czy parametr da się skonwertować na liczbę.

import javax.swing.*;
import java.awt.*;
 
public class KlasaGlowna extends JApplet 
{
    public void init()
    {
        int typOkna = Integer.parseInt(getParameter("parametr1"));
        switch(typOkna)
        {
            case 1:
                test();
                break; 
        }
    }
    void test()
    {
        setLayout(new FlowLayout());
        add(new JButton("Przycisk 1"));  
        add(new JButton("Przycisk 2"));  
        add(new JButton("Przycisk 3"));     
    }
}
0

Dziękuję :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1