JApplet mit Look&Feel?

PrincE

Aktives Mitglied
Hallo Leute :)

Gibt es einen bestimmten Grund warum ich kein LookAndFeel bei einem JAppet zum Laufen bringe?

Java:
try
		{
			UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
		}
		catch (ClassNotFoundException e){e.printStackTrace();} catch (InstantiationException e){e.printStackTrace();} catch (IllegalAccessException e){e.printStackTrace();} catch (UnsupportedLookAndFeelException e){e.printStackTrace();}

Ich hab schon bisschen rumm gegoggelt und Suchfunktion und so aber irgendwie scheint ja keiner meine Probleme zu haben.

Bei einem JFrame läuft alles problemfrei..
 

eRaaaa

Top Contributor
Mhmm, normal sollte das bei einem Applet auch gehen.
Wird denn eine Exception geworfen? Woran erkennst du dass das Look&Feel nicht gesetzt wird? Was für Komponenten setzt du ein?
Nimbus ist auch erst ab Java6u10 mit an Board, vllt liegts daran, dann wäre wieder die Frage nach der Exception ..:)
 

PrincE

Aktives Mitglied
keine Exception kommt.

Ich weis es daher, weil ich Komponenten ganz normal wie auch beim JFrame verwende die aber beim JApplet nicht Design mäßig geändert werden und beim JFrame schon.
Andere ältere Look&Feel haben auch kein Effekt beim JApplet.
 

eRaaaa

Top Contributor
Mach mal ein kleines Beispiel das man ausführen kann....wo setzt du denn das LookAndFeel? In der init-Methode?
Java:
public class Snippet extends JApplet {

	@Override
	public void init() {
		super.init();
		try {
			UIManager
					.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (UnsupportedLookAndFeelException e) {
			e.printStackTrace();
		}
		JPanel panel = new JPanel();
		panel.add(new JButton("Nimbus-Button"));
		add(panel);
	}
}

funzt bei mir....
 

PrincE

Aktives Mitglied
ich machs einfach ganz am Anfang in die Main das funktioniert beim JFrame aber beim JApplet nicht

Java:
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class Starter
{
	public static Window oWindow;
	
	public static void main(String param[])
	{
		try
		{
			UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
		}
		catch (ClassNotFoundException e){e.printStackTrace();} catch (InstantiationException e){e.printStackTrace();} catch (IllegalAccessException e){e.printStackTrace();} catch (UnsupportedLookAndFeelException e){e.printStackTrace();}
		
		oWindow = new Window();
		oWindow.setVisible(true);
	}
}

hier ist Window ein JApplet

ist ja misteriös bei mir Funktioniert dein Beispiel nicht
 

eRaaaa

Top Contributor

PrincE

Aktives Mitglied
auch ohne main funktionierts nicht...

Java:
import java.awt.Color;
import java.awt.Font;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class Window extends JApplet
{
	private static final long serialVersionUID = 1L;
	
	JPanel panelOberflaeche = new JPanel();
	JLabel labelAusgabe = new JLabel("Ausgabe: ");
	
	JTextField textfieldEingabeUbersetzung = new JTextField();
	JTextField textfieldLeseVokabel = new JTextField();
	
	JMenuBar menuBar;
	JMenu menuDatei;
	JMenu menuEinstellungen;
	
	JButton buttonNeustarten = new JButton();
	JButton buttonWeiter = new JButton(); 
	
	JComboBox comboboxTest = new JComboBox();
	
	@Override
    public void init() {
		
		System.out.println("qwe");
        super.init();
        try {
            UIManager
                    .setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (UnsupportedLookAndFeelException e) {
            e.printStackTrace();
        }
	}
	
	public Window()
	{
		this.setLayout(null);
		this.setVisible(true);
		this.setBounds(0, 0, 862, 588);
		panelOberflaeche.setBounds(this.getBounds());
		panelOberflaeche.setLayout(null);
		
		menuBar = new JMenuBar();
		setJMenuBar(menuBar);
	
		menuDatei = new JMenu("Datei");
		menuEinstellungen = new JMenu("Einstellungen");
	    
	    menuBar.add(menuDatei);
		menuBar.add(menuEinstellungen);
	    
		JMenuItem menuItemNeueAbfrage = new JMenuItem("Neue Abfrage");
		JMenuItem menuItemNeustarten = new JMenuItem("Aktuelle Abfrage neustarten");
	    JMenuItem menuItemBeenden = new JMenuItem("Aktuelle Abfrage Beenden");
	    JMenuItem menuItemTon = new JMenuItem("Ton ein");
	    
	    menuDatei.add(menuItemNeueAbfrage);
	    menuDatei.add(menuItemNeustarten);
	    menuDatei.addSeparator();
	    menuDatei.add(menuItemBeenden);
	
	    menuEinstellungen.add(menuItemTon);
	    menuItemTon.setText("Ton aus");
		
	    textfieldLeseVokabel.setBounds(140, 140, 300, 100);
	    textfieldLeseVokabel.setEditable(false);
	    textfieldLeseVokabel.setFont(new Font("Arial",1,16));
	    textfieldLeseVokabel.setForeground(Color.blue);
	    textfieldLeseVokabel.setText("Flugzeug");
	    
		textfieldEingabeUbersetzung.setBounds(140,300,400,60);
		textfieldEingabeUbersetzung.setFont(new Font("Arial",1,16));
		textfieldEingabeUbersetzung.setForeground(Color.black);
		
		buttonNeustarten.setBounds(40, 480, 100, 40);
		buttonNeustarten.setText("neustarten");
		
		buttonWeiter.setBounds(200, 480, 100, 40);
		buttonWeiter.setText("weiter");
		
		comboboxTest.setBounds(20, 20, 200, 40);
		comboboxTest.addItem("qwe");

		this.add(panelOberflaeche);
		panelOberflaeche.add(labelAusgabe);
		panelOberflaeche.add(textfieldEingabeUbersetzung);
		panelOberflaeche.add(textfieldLeseVokabel);
		panelOberflaeche.add(buttonNeustarten);
		panelOberflaeche.add(buttonWeiter);
		panelOberflaeche.add(comboboxTest);
	}
}

macht kein Unterschied :/
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
Grr :)
Also init() wird AUTOMATISCH aufgerufen von dem Applet! Das ist die Einstiegsmethode, quasi die main, die rufst du ja auch nicht selbst auf normalerweise.([EDIT]: Ok haste schon bemerkt :D)
Dann könnte es auch helfen die Komponenten nicht direkt zu initialisieren, sondern erstmal nur zu deklarieren, das LookAndFeel setzen und dann zu initialisieren:
Java:
import java.awt.Color;
import java.awt.Font;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

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

	JPanel panelOberflaeche;
	JLabel labelAusgabe;

	JTextField textfieldEingabeUbersetzung;
	JTextField textfieldLeseVokabel;

	JMenuBar menuBar;
	JMenu menuDatei;
	JMenu menuEinstellungen;

	JButton buttonNeustarten;
	JButton buttonWeiter;

	JComboBox comboboxTest;

	@Override
	public void init() {
		System.out.println("qwe");
		super.init();
		try {
			UIManager
					.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (UnsupportedLookAndFeelException e) {
			e.printStackTrace();
		}

		initComponents();
	}

	private void initComponents() {
		panelOberflaeche = new JPanel();
		labelAusgabe = new JLabel("Ausgabe: ");

		textfieldEingabeUbersetzung = new JTextField();
		textfieldLeseVokabel = new JTextField();

		buttonNeustarten = new JButton();
		buttonWeiter = new JButton();

		comboboxTest = new JComboBox();

		this.setLayout(null);
		this.setVisible(true);
		this.setBounds(0, 0, 862, 588);
		panelOberflaeche.setBounds(this.getBounds());
		panelOberflaeche.setLayout(null);

		menuBar = new JMenuBar();
		setJMenuBar(menuBar);

		menuDatei = new JMenu("Datei");
		menuEinstellungen = new JMenu("Einstellungen");

		menuBar.add(menuDatei);
		menuBar.add(menuEinstellungen);

		JMenuItem menuItemNeueAbfrage = new JMenuItem("Neue Abfrage");
		JMenuItem menuItemNeustarten = new JMenuItem(
				"Aktuelle Abfrage neustarten");
		JMenuItem menuItemBeenden = new JMenuItem("Aktuelle Abfrage Beenden");
		JMenuItem menuItemTon = new JMenuItem("Ton ein");

		menuDatei.add(menuItemNeueAbfrage);
		menuDatei.add(menuItemNeustarten);
		menuDatei.addSeparator();
		menuDatei.add(menuItemBeenden);

		menuEinstellungen.add(menuItemTon);
		menuItemTon.setText("Ton aus");

		textfieldLeseVokabel.setBounds(140, 140, 300, 100);
		textfieldLeseVokabel.setEditable(false);
		textfieldLeseVokabel.setFont(new Font("Arial", 1, 16));
		textfieldLeseVokabel.setForeground(Color.blue);
		textfieldLeseVokabel.setText("Flugzeug");

		textfieldEingabeUbersetzung.setBounds(140, 300, 400, 60);
		textfieldEingabeUbersetzung.setFont(new Font("Arial", 1, 16));
		textfieldEingabeUbersetzung.setForeground(Color.black);

		buttonNeustarten.setBounds(40, 480, 100, 40);
		buttonNeustarten.setText("neustarten");

		buttonWeiter.setBounds(200, 480, 100, 40);
		buttonWeiter.setText("weiter");

		comboboxTest.setBounds(20, 20, 200, 40);
		comboboxTest.addItem("qwe");

		this.add(panelOberflaeche);
		panelOberflaeche.add(labelAusgabe);
		panelOberflaeche.add(textfieldEingabeUbersetzung);
		panelOberflaeche.add(textfieldLeseVokabel);
		panelOberflaeche.add(buttonNeustarten);
		panelOberflaeche.add(buttonWeiter);
		panelOberflaeche.add(comboboxTest);
	}

}

grob so etwas....
EDIT 2: und setVisible(true) am Besten immer erst am Ende aufrufen ! Könnte auch helfen
 

PrincE

Aktives Mitglied
jo ich hab jetzt auch gemerkt das man init nicht aufrufen muss ^^

danke schön, ich musste nur noch unten repaint() danach ging alles :)))
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T JApplet in Browserfenster maximieren Tools - Maven, Gradle, Ant & mehr 10
A JApplet Form: JPanel dynamisch füllen Tools - Maven, Gradle, Ant & mehr 3
S Probleme mit Kombination Java JApplet;MySQL;Webserver Tools - Maven, Gradle, Ant & mehr 3
M Probleme mit JApplet Tools - Maven, Gradle, Ant & mehr 20
G JApplet mit Chat Tools - Maven, Gradle, Ant & mehr 2
C JApplet soll beim Aufruf nicht neustarten Tools - Maven, Gradle, Ant & mehr 3
H JApplet von laufendem JApplet starten Tools - Maven, Gradle, Ant & mehr 8
G JApplet parallel zu Java-Applikation entwickeln Tools - Maven, Gradle, Ant & mehr 11
H JApplet läuft zwar korrekt, bleibt aber unsichtbar Tools - Maven, Gradle, Ant & mehr 3
M JApplet funktioniert nicht Tools - Maven, Gradle, Ant & mehr 5
G Problem mit JApplet bzw Applet Tools - Maven, Gradle, Ant & mehr 5
S aus einem JApplet ein Image in separatem JFrame anzeigen Tools - Maven, Gradle, Ant & mehr 10
N Jars in JApplet Tools - Maven, Gradle, Ant & mehr 2
M Unterschiede-Vorteile Applet/JApplet Tools - Maven, Gradle, Ant & mehr 3
D Runnable JApplet mit Bild/Ovals "übermalt" Buttons Tools - Maven, Gradle, Ant & mehr 6
A Tastatureingaben und JApplet Tools - Maven, Gradle, Ant & mehr 2
M eine Frage über JApplet und JMenuBar Tools - Maven, Gradle, Ant & mehr 6
D JApplet & MouseListener Tools - Maven, Gradle, Ant & mehr 5
L Applet oder JApplet Tools - Maven, Gradle, Ant & mehr 10
M JApplet komplett neu zeichnen Tools - Maven, Gradle, Ant & mehr 3
M JApplet läuft in Eclipse, aber nicht in den Browsern Tools - Maven, Gradle, Ant & mehr 7
S JApplet- Komponentenanzeige Tools - Maven, Gradle, Ant & mehr 7
M ein aus einem JApplet gestartetes JFrame schliessen Tools - Maven, Gradle, Ant & mehr 6
A [GUI] [JApplet] [JDialog] Nochmal die Frage zur Modalität un Tools - Maven, Gradle, Ant & mehr 3
K Bild (jpg) in einem JApplet Tools - Maven, Gradle, Ant & mehr 2
D JApplet Tools - Maven, Gradle, Ant & mehr 11

Ähnliche Java Themen

Neue Themen


Oben