L&F Hilfe

Status
Nicht offen für weitere Antworten.

delpho

Mitglied
Hallo,

ich habe ein kleines Problem, und zwar möchte ich, das ich auch über das Menü das Look&Feel ändern kann, leider funktioniert das nur, wenn ich Windows anwähle..

hätte da jemand rat? vielleicht auch, wie ich das mit dem menü über ein array lösen könnte?

danke
Code:
/**
 * Autor: 
 * Version: j2sdk1.4.2
 * Beschreibung: Demoprogramm für Swing-Komponenten
 * 				 look & feel wird über Button eingestellt.
 * Datum: 30.3.2005
 * Änderungen:
 */
import java.awt.*; 		 // wg Container, GridBagLayout, etc.
import java.awt.event.*; // wg ActionListener etc.

import javax.swing.*;
import javax.swing.event.*;

class SwingDemo1{
	
	public static void main(String [] arg){
		
		// hier soll ein Fenster-Objekt konstruiert werden
		SwingFenster meinFensterObjekt = new SwingFenster();
		meinFensterObjekt.pack();
		meinFensterObjekt.show();
	}
	
}// end of class SwingDemo0


class SwingFenster extends JFrame{
	
	// Membervariablen
	JPanel 
		pnlFlaeche,
		pnlEingabe,
		pnlAuswahl,
		pnlButtons,
		pnlRadio;
		
	JButton
		butOK,
		butReturn;
	
	JLabel
		labName,
		labListBox,
		labComboBox,
		labEMail,
		labFrei2,
		labFrei1,
		labFrei3,
		labFrei4,
		labFrei6;
		
	JTextField
		txfName,
		txfEMail;
		
	String 
		lafName1 = "javax.swing.plaf.metal.MetalLookAndFeel",
	 	lafName2 = "com.sun.java.swing.plaf.motif.MotifLookAndFeel",
	 	lafName3 = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";

	JButton
		butMotif,
		butMetal,
		butWindows;
		
	JList
		lstAuswahl;
		
	JComboBox
		cmbAuswahl;
		
	JRadioButton 
		radiobuttons1,
	  radiobuttons2,
	  radiobuttons3;
	  
	JMenuBar
	 menubar;
	 
	JMenu
	 	mnuFileExit,
		mnuFile;
	
		
	
	JFrame fenster = null;
	
	String lafName = null;
	
	
	
	final int numButtons = 3;
    JRadioButton[] radioButtons 
    	= new JRadioButton[numButtons];

	final ButtonGroup group = new ButtonGroup();
	
	final String[] lufComboChoose = {"Metal", "Motif", "Windows"};

	// Konstruktoren -----------------------------------------
	
	public SwingFenster(){
		
		this("JKomponenten");	
		JMenuBar menubar = new JMenuBar();
 		menubar.add(createFileMenu()); 
		setJMenuBar(menubar);
	}// end of constructor
	
	
	public SwingFenster(String titelleiste){
		super(titelleiste);
		
		fenster = this; // Referenz auf das Fensterobjekt selbst
		
		
		//Look & Feel festlegen
		try{
			UIManager.setLookAndFeel( lafName1 );	
		}
		catch( Exception exp){
			System.out.println("Fehler bei l&f " + exp.getMessage() );
		}
		
		// nun die ContentPane holen
		 Container cPane = this.getContentPane();
		 cPane.setLayout(new BorderLayout());
		// this.getContentPane().setLayout(new BorderLayout());
		
		// Komponenten konstruieren und auf das Panel legen
		pnlEingabe = new JPanel();
		
		labName = new JLabel("Name");
		labEMail = new JLabel("E-Mail");
		labFrei2 = new JLabel("      ");
		labFrei1 = new JLabel("      ");
		txfName = new JTextField(30);
		txfEMail = new JTextField(30);
		
		// nun Layout für das Panel einstellen
		GridBagLayout grid = new GridBagLayout();
		GridBagConstraints constr = new GridBagConstraints();
		
		pnlEingabe.setLayout( grid );
		
		// nun Komponenten auf das Panel legen
		constr.gridx = 1; // Spalte
		constr.gridy = 2; // Zeile
		pnlEingabe.add(labName, constr);
		
		constr.gridx = 2; // Spalte
		constr.gridy = 2; // Zeile
	  pnlEingabe.add(txfName, constr);
		
		
		constr.gridx = 1; // Spalte
		constr.gridy = 3; // Zeile
		pnlEingabe.add(labEMail, constr);
		
		constr.gridx = 2; // Spalte
		constr.gridy = 3; // Zeile
		pnlEingabe.add(txfEMail, constr);
		
		
    constr.gridx = 2;
    constr.gridy = 4;
    pnlEingabe.add(labFrei2, constr);
    
    constr.gridx = 2;
    constr.gridy = 1;
    pnlEingabe.add(labFrei1, constr);

   
		// nun das Panel auf das Fenster legen
		cPane.add("North", pnlEingabe);
		
		// nun Layout für das Panel einstellen
		
		pnlAuswahl = new JPanel();
	  
	  labListBox = new JLabel("ListBox");
		labComboBox = new JLabel("ComboBox");
		labFrei3 = new JLabel("        ");
		labFrei4 = new JLabel("        ");
		labFrei6 = new JLabel("        ");
		lstAuswahl = new JList();
		cmbAuswahl = new JComboBox(lufComboChoose);
		cmbAuswahl.setSelectedIndex(0);
    cmbAuswahl.addActionListener(new ActionAdapter3());

		
		GridBagConstraints constr2 = new GridBagConstraints();
		pnlAuswahl.setLayout( grid );
		
		// nun Komponenten auf das Panel legen
    constr2.gridx = 2;
    constr2.gridy = 1;
    pnlAuswahl.add(labListBox, constr2);
        
      
    constr2.gridx = 5;
    constr2.gridy = 1;
    pnlAuswahl.add(labComboBox, constr2);

        
    constr2.gridx = 3;
    constr2.gridy = 1;
    constr2.ipadx = 51;
    constr2.ipady = 69;
    pnlAuswahl.add(lstAuswahl, constr2);

    constr2.gridx = 7;
    constr2.gridy = 1;
    constr2.ipady = 1;
    constr2.ipadx = 40;
    pnlAuswahl.add(cmbAuswahl, constr2);

    
    constr2.gridx = 1;
    constr2.gridy = 1;
    pnlAuswahl.add(labFrei3, constr2);


    constr2.gridx = 4;
    constr2.gridy = 1;
    pnlAuswahl.add(labFrei4, constr2);


    constr2.gridx = 8;
    constr2.gridy = 1;
    pnlAuswahl.add(labFrei6, constr2);
    
    // nun das Panel auf das Fenster legen
    cPane.add("Center", pnlAuswahl);
        
        
		
		

		
	
        
    		// drittes Panel für Radio-Button anlegen -----------
	    pnlRadio = new JPanel(); 

		// nun Layout für das Panel einstellen
		
		GridLayout gridLayout = new GridLayout(3,2);
		pnlRadio.setLayout( gridLayout );
		
	    
	  radioButtons[0] = new JRadioButton("Metal");
	  radioButtons[0].setForeground(new Color(255, 51, 51));
    radioButtons[0].setActionCommand("Metal");

    radioButtons[1] = new JRadioButton("Motif");
    radioButtons[1].setForeground(new Color(0, 0, 153));
    radioButtons[1].setActionCommand("Motif");

    radioButtons[2] = new JRadioButton("Windows");
    radioButtons[2].setForeground(new Color(0, 102, 51));
    radioButtons[2].setActionCommand("Windows");


        for (int i = 0; i < numButtons; i++) {
            pnlRadio.add(radioButtons[i],gridLayout);
            group.add(radioButtons[i]);
        }
	
       	//Select the first button by default.
        radioButtons[0].setSelected(true);
	
	
		// nun das Panel auf das Fenster legen
		cPane.add("East", pnlRadio);
		
		//Listener anbinden
		for (int i = 0; i < numButtons; i++) {
            radioButtons[i].addActionListener(new ActionAdapter2());
        }
    

		
    // Komponenten konstruieren und auf das Panel legen
    pnlButtons = new JPanel();
    
		butMotif = new JButton("Metal" );
		butWindows = new JButton("Windows" );
		butMetal = new JButton("Motif" ); 
		
    GridBagConstraints constr4 = new GridBagConstraints();
		pnlButtons.setLayout( grid );

	
		butMotif.setForeground(new Color(0, 0, 153));
    constr4.gridx = 0;
    constr4.gridy = 1;
    constr4.fill = GridBagConstraints.BOTH;
    pnlButtons.add(butMotif, constr4);

    butMetal.setForeground(new Color(255, 51, 51));
    constr4.gridx = 0;
    constr4.gridy = 2;
    constr4.fill = GridBagConstraints.BOTH;
    pnlButtons.add(butMetal, constr4);

    butWindows.setForeground(new Color(0, 102, 51));
    constr4.gridx = 0;
    constr4.gridy = 3;
    constr4.fill = GridBagConstraints.BOTH;
    constr4.anchor = GridBagConstraints.NORTH;
    pnlButtons.add(butWindows, constr4);

		// nun das Panel auf das Fenster legen
    cPane.add("West", pnlButtons);
    
    pack();
		
		
		// Listener anbinden
		butMotif.addActionListener(new ActionAdapter());
		butMetal.addActionListener(new ActionAdapter());
		butWindows.addActionListener(new ActionAdapter());
		
	
	
		
	}// end of constructor
	



	
	// Methoden -----------------------------------------------
	public JMenu createFileMenu()
 {
     JMenu ret = new JMenu("Look & Feel");
 		 JMenuItem mi;
     
     mi = new JMenuItem("Metal");
    
     ret.add(mi);
     
     mi = new JMenuItem("Motif");
     
  	 ret.add(mi);
     mi = new JMenuItem("Windows");
     
     mi.addActionListener(new ActionAdapter4());
     ret.add(mi);
     fenster.pack();
     return ret;
     
   }
 

 
	
	// Implementierungen der ListenerInterfaces ---------------
	
	class ActionAdapter4 implements ActionListener
	{
		public void actionPerformed(ActionEvent e) {
		  	JMenuItem mi = (JMenuItem)e.getSource();
       String newSelection = (String)mi.getText();

       
       		 if (newSelection == "Metal") {        
                lafName = lafName1;

            } else if (newSelection == "Motif") {
            	  lafName = lafName2;
                    
           	} else if (newSelection == "Windows") {
                lafName = lafName3;
            }
            
			try{
				UIManager.setLookAndFeel( lafName );	
				
				SwingUtilities.updateComponentTreeUI( fenster );
			}
			catch( Exception exp){
				System.out.println("Fehler bei l&f " + exp.getMessage() );
			}
		
			fenster.pack();
   
		}
		
	}// end of class ActionAdapter4
	
	class ActionAdapter3 implements ActionListener
	{
		public void actionPerformed(ActionEvent e) {
		  	JComboBox cb = (JComboBox)e.getSource();
        String newSelection = (String)cb.getSelectedItem();
       
       		 if (newSelection == "Metal") {        
                lafName = lafName1;

            } else if (newSelection == "Motif") {
            	  lafName = lafName2;
                    
           	} else if (newSelection == "Windows") {
                lafName = lafName3;
            }
            
			try{
				UIManager.setLookAndFeel( lafName );	
				
				SwingUtilities.updateComponentTreeUI( fenster );
			}
			catch( Exception exp){
				System.out.println("Fehler bei l&f " + exp.getMessage() );
			}
		
			fenster.pack();
   
		}
		
	}// end of class ActionAdapter3
	
	
	
	
	
	
	class ActionAdapter2 implements ActionListener
	{
		public void actionPerformed(ActionEvent e) {
		  	
        	String command 
                = group.getSelection().getActionCommand();

		 
            if (command == "Metal") {
                    
            	JOptionPane.showMessageDialog( fenster,
                       "Gewählt wurde l&f Metal");
                       
                lafName = lafName1;

            } else if (command == "Motif") {
                JOptionPane.showMessageDialog( fenster,
                       "Gewählt wurde l&f Motif");
                       
                lafName = lafName2;
                    
           	} else if (command == "Windows") {
              	JOptionPane.showMessageDialog( fenster,
                       "Gewählt wurde l&f Windows");
                       
                lafName = lafName3;
            }
            
			try{
				UIManager.setLookAndFeel( lafName );	
				
				SwingUtilities.updateComponentTreeUI( fenster );
			}
			catch( Exception exp){
				System.out.println("Fehler bei l&f " + exp.getMessage() );
			}
		
			fenster.pack();
   
		}
		
	}// end of class ActionAdapter2
	
	
	
	class ActionAdapter implements ActionListener
	{
		public void actionPerformed(ActionEvent ev ){
		
			
			Object quelle = ev.getSource();
			
			if( quelle == butMotif){
				lafName = lafName1;
			}
			
			else if(quelle == butMetal){
				lafName = lafName2;
			}
			
			else if(quelle == butWindows){
				lafName = lafName3;
			}
		
			try{
				UIManager.setLookAndFeel( lafName );	
				
				SwingUtilities.updateComponentTreeUI( fenster );
			}
			catch( Exception exp){
				System.out.println("Fehler bei l&f " + exp.getMessage() );
			}
		
			fenster.pack();
			
		}
		
	}// end of inner class ActionAdapter
	
	
}// end of class SwingFenster
 
G

Guest

Gast
Hallo delpho,

du hast vergessen zu jedemMenüpunkt den ActionListener aufzurufen:

Code:
 public JMenu createFileMenu()
{
     JMenu ret = new JMenu("Look & Feel");
       JMenuItem mi;
     
     mi = new JMenuItem("Metal");
     mi.addActionListener(new ActionAdapter4());
   
     ret.add(mi);
     
     mi = new JMenuItem("Motif");
     mi.addActionListener(new ActionAdapter4());
     
      ret.add(mi);
     mi = new JMenuItem("Windows");
     
     mi.addActionListener(new ActionAdapter4());
     ret.add(mi);
     fenster.pack();
     return ret;
     
   }

Gruß
Wolfgang
 

The_God

Aktives Mitglied
Auslesen aller L&F's:

Code:
UIManager.LookAndFeelInfo[] all_laf = UIManager.getInstalledLookAndFeels();
    all = new String[all_laf.length];
    for (int i=0; i<all_laf.length; i++){
      all[i] = all_laf[i].getClassName();
    }



Das kommt in die main Klasse, weisst allen Elementen das gewählte L&F zu
Code:
  public void init (){

   /// Style \\\
   try {
     UIManager.setLookAndFeel(/... gew. LF einstragen.../);
     SwingUtilities.updateComponentTreeUI(this);
   }
   catch (Exception elaf) {
     System.out.print(elaf);
   }
 }
[/code][/quote]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
H pdf stempel - Hilfe erbeten Java Basics - Anfänger-Themen 6
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
A Hilfe beim Lesen von Pfaden und Systemvariablen Java Basics - Anfänger-Themen 3
F RegEx Hilfe Java Basics - Anfänger-Themen 5
S Hilfe bei Endlosschleife Java Basics - Anfänger-Themen 2
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
U Ich bräuchte Hilfe Java Basics - Anfänger-Themen 1
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
Justin4687 Benötige Hilfe bei folgender Aufgabe Java Basics - Anfänger-Themen 2
aero043 Hilfe bei BlueJ Hausübung Java Basics - Anfänger-Themen 27
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
P Hilfe gesucht Java Basics - Anfänger-Themen 11
D Hilfe bei Calculator Test Java Basics - Anfänger-Themen 15
R Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
R Java Bücher hilfe Java Basics - Anfänger-Themen 9
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
I Scheduling: "Quartz" verwenden, Hilfe bei Umstellung Java Basics - Anfänger-Themen 3
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
Ekooekoo Hilfe spiel Java Basics - Anfänger-Themen 5
SpiritsHuner Hilfe!! Java Basics - Anfänger-Themen 16
Lacotto Java Kurs Aufgaben Hilfe Java Basics - Anfänger-Themen 14
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
Neuling47 Denkfehler? Hilfe Java Basics - Anfänger-Themen 11
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
L Hilfe bei RegEx Java Basics - Anfänger-Themen 4
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
Neuling47 bräuchte dringend hilfe Java Basics - Anfänger-Themen 6
D Bräuchte Hilfe im Bezug zum printarray() Java Basics - Anfänger-Themen 4
M Bitte um Hilfe bei 2DArrays Java Basics - Anfänger-Themen 8
HeiTim Array hilfe Java Basics - Anfänger-Themen 14
M LCD-Ziffern-Hilfe Java Basics - Anfänger-Themen 6
özkan hilfe!! Java Basics - Anfänger-Themen 4
C Hilfe bei einem Anfängerprojekt Java Basics - Anfänger-Themen 25
D Abrechnung bitte um hilfe Java Basics - Anfänger-Themen 25
J Brauche Hilfe bei for-each Aufgabe Java Basics - Anfänger-Themen 1
D Zahlentabelle Anfänger braucht Hilfe Java Basics - Anfänger-Themen 1
HeiTim Brauche Hilfe soll ein nummeriertes Feld ausgeben lassen Java Basics - Anfänger-Themen 17
S Interaktive Abfrage, Hilfe mit Schleifen! Java Basics - Anfänger-Themen 6
N Hilfe bei der Installation Java Basics - Anfänger-Themen 2
J Brauche Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
S Hilfe bei Programmierung einer Hotelabrechnung Java Basics - Anfänger-Themen 5
enjoykimii Strukturierte Programmierung Hilfe Java Basics - Anfänger-Themen 29
H Bräuchte hilfe Java Basics - Anfänger-Themen 3
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
H Brauche Hilfe Java Basics - Anfänger-Themen 2
D Dijkstra Algorithmus Hilfe!! Java Basics - Anfänger-Themen 9
H Hilfe Java Basics - Anfänger-Themen 6
H Brauche hilfe Java Basics - Anfänger-Themen 3
M Hilfe - Array Aufgabe Java Basics - Anfänger-Themen 8
R Schulaufgabe, Bruache Hilfe mit non-static Methoden Java Basics - Anfänger-Themen 2
kevkev Hilfe bei Schiffe versenken Java Basics - Anfänger-Themen 5
FelixxF Erste Schritte Hilfe bei Fußball Manager Java Basics - Anfänger-Themen 2
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
C Brauche Hilfe um ein Programm zu schreiben Java Basics - Anfänger-Themen 8
josfe1234 Hilfe access denied ("java.io.FilePermission" " " "read") Java Basics - Anfänger-Themen 12
Vivien Hilfe bei Type Conversion Java Basics - Anfänger-Themen 3
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
N Laufzeitberechnung - dringende Hilfe! Java Basics - Anfänger-Themen 1
G Java Hilfe Java Basics - Anfänger-Themen 3
J Java List, Bitte um Hilfe Java Basics - Anfänger-Themen 15
J Java List, bitte um Hilfe Java Basics - Anfänger-Themen 3
U anfänger braucht hilfe . wir konnten die aufgaben nicht beantworten Java Basics - Anfänger-Themen 5
A Schleifen, Hilfe! Java Basics - Anfänger-Themen 6
LeonDerStudent Hilfe bei Uniprojekt Java Basics - Anfänger-Themen 2
H Brauche Hilfe in Java Eclipse Programmieraufgabe Neuling Java Basics - Anfänger-Themen 3
B Hilfe bei Map Liste erstellen Java Basics - Anfänger-Themen 10
Kapfski Was habe ich falsch gemacht? Hilfe! Java Basics - Anfänger-Themen 17
R Java (Eclipse) "Lagerverwaltung" HILFE Java Basics - Anfänger-Themen 13
M Bräuchte Hilfe bei diesen Methoden Java Basics - Anfänger-Themen 4
dieter000 Aufgabe Hilfe Java Basics - Anfänger-Themen 18
Gaudimagspam Dringend Java Hilfe benötigt Java Basics - Anfänger-Themen 19
jonathanpizza Hilfe bei einer Übungsaufgabe Java Basics - Anfänger-Themen 6
dieter000 Hilfe bei dem Beispiel, wie gehe ich sowas am besten an? Java Basics - Anfänger-Themen 32
jonathanpizza Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
Q Hilfe auf Aufgabe(Matrixmultiplikation) Java Basics - Anfänger-Themen 1
jonathanpizza Hilfe bei der Aufgabe Java Basics - Anfänger-Themen 19
pry bitte Hilfe beim Kreditrechner objektorientiert Java Basics - Anfänger-Themen 6
R Hilfe bei removeduplicates Java Basics - Anfänger-Themen 5
D Brauche Dringend Hilfe...Prozedur/Funktionsprozedur Ergebnis augeben Java Basics - Anfänger-Themen 11
marcooooo einmal noch schnell hilfe bitte:/ Java Basics - Anfänger-Themen 2
Q Hilfe bei Hausaufgeben Java Basics - Anfänger-Themen 2
J Hilfe beim Label animieren Java Basics - Anfänger-Themen 1
S Hilfe Java Basics - Anfänger-Themen 1
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
Kawastori Hilfe bei Methoden Übung Java Basics - Anfänger-Themen 6
Chabub Hilfe bei Stacks und Queue Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben