K
kph
Gast
Guten Tag,
ich möchte eine Programm (Fenster.java) erstellen welches ein Fenster öffnet auf dem ein Button ist, wenn ich auf den Button klicke soll sich noch ein Fenster öffnen. Als weitere Funktion soll das Look-And-Feel umgestellt werden können, wenn ich das Look-And-Feel auf "Windows" stelle soll der Button der sich öffnet auch das Look-And-Feel bekommen.
Aber es fängt schon an das ich beim versuch das Programm zu kompelieren, folgenden Fehler bekomme:
java.lang.NoSuchMethodError: main
Exception in thread "main"
Meine Fragen sind also wie folgt:
1. Wie bekomme ich den Fehler weg?
2. Wie bekomme ich hin, das sich das Fenster mit dem richtigen Look-And-Feel öffnet?
ich möchte eine Programm (Fenster.java) erstellen welches ein Fenster öffnet auf dem ein Button ist, wenn ich auf den Button klicke soll sich noch ein Fenster öffnen. Als weitere Funktion soll das Look-And-Feel umgestellt werden können, wenn ich das Look-And-Feel auf "Windows" stelle soll der Button der sich öffnet auch das Look-And-Feel bekommen.
Aber es fängt schon an das ich beim versuch das Programm zu kompelieren, folgenden Fehler bekomme:
java.lang.NoSuchMethodError: main
Exception in thread "main"
Code:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.event.*;
import java.util.Properties;
import java.io.FileInputStream;
import java.util.Iterator;
public class Fenster
extends JFrame
implements ActionListener
{
private String plaf = "javax.swing.plaf.metal.MetalLookAndFeel";
private JButton btn = new JButton("Hilfe");
private static Fenster wnd = new Fenster();
public Fenster()
{
super("Test Fenster");
JMenuBar menubar = new JMenuBar();
menubar.add(createFileMenu());
setJMenuBar(menubar);
Container contentPane = getContentPane();
contentPane.setLayout(new GridLayout(1,1));
JPanel zeile1 = new JPanel();
zeile1.setLayout(new GridLayout(1,2));
btn.addActionListener(this);
zeile1.add(btn);
zeile1.setBorder(BorderFactory.createEtchedBorder());
contentPane.add(zeile1);
}
private JMenu createFileMenu()
{
JMenu ret = new JMenu("Design");
ret.setMnemonic('D');
JMenuItem mi;
// Metal
mi = new JMenuItem("Metal",'l');
mi.addActionListener(this);
ret.add(mi);
// Motif
mi = new JMenuItem("Motif",'f');
mi.addActionListener(this);
ret.add(mi);
// Windows
mi = new JMenuItem("Windows",'W');
mi.addActionListener(this);
ret.add(mi);
return ret;
}
public void actionPerformed(ActionEvent event)
{
String cmd = event.getActionCommand();
try {
//PLAF-Klasse auswählen
if (cmd.equals("Metal")){
plaf = "javax.swing.plaf.metal.MetalLookAndFeel";
}else if (cmd.equals("Motif")){
plaf = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
}else if (cmd.equals("Windows")) {
plaf = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
}
//LAF umschalten
UIManager.setLookAndFeel(plaf);
SwingUtilities.updateComponentTreeUI(this);
}catch(UnsupportedLookAndFeelException e) {
System.err.println(e.toString());
}catch (ClassNotFoundException e) {
System.err.println(e.toString());
}catch(InstantiationException e) {
System.err.println(e.toString());
}catch(IllegalAccessException e) {
System.err.println(e.toString());
}
if(cmd == "Hilfe")
{
JOptionPane.showMessageDialog(wnd,"hier wird Ihnen geholfen","die Hilfe",1);
}
}
public static void main(String[] args)
{
wnd.setResizable(false);
wnd.setLocation(100,100);
wnd.setSize(500 ,175);
wnd.setVisible(true);
}
}
Meine Fragen sind also wie folgt:
1. Wie bekomme ich den Fehler weg?
2. Wie bekomme ich hin, das sich das Fenster mit dem richtigen Look-And-Feel öffnet?