Hi,
ich habe einen Editor programmiert, indem ich über die Menüleiste über RadioButtonMenuItem`s
das Look And Feel des Editors verändern will.
Dazu habe ich die RadioButtonMenuItem`s bei einem ActionListener angemeldet.
Das Problem ist das in meiner letzten Programmzeile
eine Referenz auf den Editor braucht. Nun wollte ich aber nicht über einen Konstruktor a la new MyRadioButtonActionListene eine Referenz
auf den Editor geben. Kann ich irgendwie über das e Objekt an den Editor gelangen?
Oder gibts andere Alternativen?
ich habe einen Editor programmiert, indem ich über die Menüleiste über RadioButtonMenuItem`s
das Look And Feel des Editors verändern will.
Dazu habe ich die RadioButtonMenuItem`s bei einem ActionListener angemeldet.
Das Problem ist das in meiner letzten Programmzeile
Java:
SwingUtilities.updateComponentTreeUI(this);
auf den Editor geben. Kann ich irgendwie über das e Objekt an den Editor gelangen?
Oder gibts andere Alternativen?
Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public class MyRadioButtonActionListener implements ActionListener
{
String actualLookAndFeel = UIManager.getSystemLookAndFeelClassName();
@Override
public void actionPerformed(ActionEvent e)
{
String calleeRadioButton = e.getActionCommand();
if(calleeRadioButton.equals("Metal"))
{
System.out.println("Metal");
if(!actualLookAndFeel.equals("javax.swing.plaf.metal.MetalLookAndFeel"))
{
try
{
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
actualLookAndFeel = "javax.swing.plaf.metal.MetalLookAndFeel";
}
catch( Exception exc )
{
exc.printStackTrace();
}
}
}
else if(calleeRadioButton.equals("Motif"))
{
System.out.println("Motif");
if(!actualLookAndFeel.equals("com.sun.java.swing.plaf.motif.MotifLookAndFeel"))
{
try
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
actualLookAndFeel = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
}
catch( Exception exc )
{
exc.printStackTrace();
}
}
}
else if(calleeRadioButton.equals("Windows"))
{
System.out.println("Windows");
if(!actualLookAndFeel.equals("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"))
{
try
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
actualLookAndFeel = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
}
catch( Exception exc )
{
exc.printStackTrace();
}
}
}
else if(calleeRadioButton.equals("Four"))
{
System.out.println("Four");
}
SwingUtilities.updateComponentTreeUI(this);
}
}