GUI Anfänger einfaches Program AWT, Swing, JavaFX & SWT

JonasO

Mitglied
Hallo zusammen, ich bin dabei einige Programme aus Lehrbüchern nachzuvollziehen. Leider Funktioniert das Programm nicht, es liegt wahrscheinlich an dem übergeben Parameter Stil.JAVA in der main an FensterBauer, leider stehet im Buch nichts weiter zu der Klasse Stil ..... könnt ihr mir da helfen ??? :oops:

Java:
package zaehler;
import java.awt.*;
import javax.swing.*;


public class FensterBauerKom {
    
    public static JFrame getFenster(String titel, 
            Dimension groesse, Point position,
            boolean goroesseveraenderbar, 
            boolean mitDekoration,Stil stil){
        
        switch(stil){
            case MOTIF:
                LAFEinstellung.setMotifLookAndFeel(); break;
            case JAVA:
                LAFEinstellung.setJavaLookAndFeel(); break;
            case NIMUBS:
                LAFEinstellung.setNimbusLookAndFeel(); break;
            default:
                LAFEinstellung.setNativLookAndFeel();
        }
        
        
        JFrame einFenster = new JFrame(titel);
        einFenster.setUndecorated(!mitDekoration);
        einFenster.setLocation(position);
        einFenster.setSize(groesse);
        einFenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        einFenster.setVisible(true);
        return einFenster;
        
    }
    }


package zaehler;
import javax.swing.UIManager;

public class LAFEinstellung {
    
    public static void setNimbusLookAndFeel(){
        try{
            UIManager.setLookAndFeel(" com.sun.java.swing.plaf.NimbusLookAndFeel");
        }
        catch(Exception e){
            e.printStackTrace();
            
        }
    }
    
    public static void setMotifLookAndFeel(){
        try{
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
            
        }
        catch(Exception e){ e.printStackTrace();}
    }
    
    public static void setNativLookAndFeel(){
        try{
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }
 
    public static void setJavaLookAndFeel(){
            try{
                UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
            }
            catch(Exception e){ e.printStackTrace();}
        }
    }


package zaehler;

public class Zaehler {

    private int zaehlerstand= 0;
    
    public void setzteAufNull(){
        
        this.zaehlerstand=0;
    }
    
    public void erhoeheUmEins(){
        zaehlerstand++;
    }
    
    public void erhoeheUm(int delta){
        if(delta >0){
            zaehlerstand = zaehlerstand + delta;
        }
    }
    
    public int getZaehlerstand(){
        return zaehlerstand;
    }
    
}


package zaehler;

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

public class ZaehlerGUI {
    
    
    private JPanel zeichenflaeche;
    private Zaehler zaehler;
    private JLabel kmStandAnzeige;
    private JTextField deltaTextFeld;
    
    public ZaehlerGUI(){
        initGUI();
    }
    
    private void initGUI(){
        
        zaehler = new Zaehler();
        LAFEinstellung.setJavaLookAndFeel();
        zeichenflaeche = new JPanel();
        zeichenflaeche.setBounds(25,25,200,230);
        zeichenflaeche.setBackground(Color.LIGHT_GRAY);
        zeichenflaeche.setLayout(null);
        
        JLabel ueberschrift = new JLabel("KM-Stand");
        ueberschrift.setBounds(25,25,150,20);
        ueberschrift.setForeground(Color.BLUE);
        ueberschrift.setHorizontalAlignment(SwingConstants.CENTER);
        zeichenflaeche.add(ueberschrift);
        
        kmStandAnzeige= new JLabel(Integer.toString(zaehler.getZaehlerstand()));
        kmStandAnzeige.setBounds(25,50,150,20);
        kmStandAnzeige.setForeground(Color.BLUE);
        kmStandAnzeige.setHorizontalAlignment(SwingConstants.CENTER);
        zeichenflaeche.add(kmStandAnzeige);
        
        JButton erhoeheUmEinsKnopf= new JButton("Erhöhe um 1");
        erhoeheUmEinsKnopf.setBounds(25,75,150,30);
        erhoeheUmEinsKnopf.setBackground(Color.YELLOW);
        zeichenflaeche.add(erhoeheUmEinsKnopf);
        
        JButton setzeAufNullKnopf= new JButton("Setzte auf 0");
        setzeAufNullKnopf.setBounds(25,125,150,30);
        setzeAufNullKnopf.setBackground(Color.YELLOW);
        zeichenflaeche.add(setzeAufNullKnopf);
        
        JButton erhoeheUmXKnopf= new JButton("Erhoehe um:");
        erhoeheUmXKnopf.setBounds(25,175,90,30);
        erhoeheUmXKnopf.setBackground(Color.YELLOW);
        zeichenflaeche.add(erhoeheUmXKnopf);
        

        deltaTextFeld= new JTextField();       
        deltaTextFeld.setBounds(130,175,45,30);
        zeichenflaeche.add(deltaTextFeld);
        
        erhoeheUmEinsKnopf.addActionListener(
                event ->{
                    zaehler.erhoeheUmEins();
                    kmStandAnzeige.setText(Integer.toString(zaehler.getZaehlerstand()));
                });
        
        setzeAufNullKnopf.addActionListener(
        event -> 
        {
            zaehler.setzteAufNull();
            kmStandAnzeige.setText(Integer.toString(zaehler.getZaehlerstand()));
        });
        
        erhoeheUmXKnopf.addActionListener(
            event -> {
                try{
                    int delta = Integer.parseInt(deltaTextFeld.getText());
                    zaehler.erhoeheUm(delta);
                    kmStandAnzeige.setText(Integer.toString(zaehler.getZaehlerstand()));
                }
                catch(NumberFormatException ausnahme){
                    Toolkit.getDefaultToolkit().beep();
                    deltaTextFeld.setText(" ");
                }
            }
        );
}
    
    public JPanel gibZeichenflaeche(){
        return zeichenflaeche;
    }
    
    
    public static void main(String[] args){
        SwingUtilities.invokeLater(new Runnable(){
            
            public void run(){
                ZaehlerGUI zGUI = new ZaehlerGUI();
                JFrame einFenster = FensterBauerKom.getFenster
                ("Kilometerzähler", 
                new Dimension(260,310), 
                new Point(25,25), false, 
                true, Stil.JAVA);
                
                einFenster.getContentPane().setLayout(null);
                einFenster.add(zGUI.gibZeichenflaeche());
                einFenster.setVisible(true);
          }  
        });
        
        
    }
 

expensne

Mitglied
Die Klasse Stil musst du erstellen bzw. sollte wohl irgendwo in dem Buch stehen. Das ist keine Klasse von Java.

Wenn du das ganze einfach durch einen String ersetzt funktioniert es schon, ist aber nicht die schönste Lösung.

FensterBauerKom.java
Java:
	public static JFrame getFenster(String titel, Dimension groesse, Point position, boolean goroesseveraenderbar,
			boolean mitDekoration, String stil) {

		switch (stil) {
		case "MOTIF":
			LAFEinstellung.setMotifLookAndFeel();
			break;
		case "JAVA":
			LAFEinstellung.setJavaLookAndFeel();
			break;
		case "NIMUBS":
			LAFEinstellung.setNimbusLookAndFeel();
			break;
		default:
			LAFEinstellung.setNativLookAndFeel();
		}

ZaehlerGUI.java
Java:
		public void run() {
				ZaehlerGUI zGUI = new ZaehlerGUI();
				JFrame einFenster = FensterBauerKom.getFenster("Kilometerzähler", new Dimension(260, 310), new Point(
						25, 25), false, true, "NIMUBS");

				einFenster.getContentPane().setLayout(null);
				einFenster.add(zGUI.gibZeichenflaeche());
				einFenster.setVisible(true);
			}

Dazu funktioniert dein Nimbus look and feel nicht, dazu schau mal hier:
Nimbus Look and Feel (The Javaâ„¢ Tutorials > Creating a GUI With JFC/Swing > Modifying the Look and Feel)

Gruß
Fabian
 
Zuletzt bearbeitet:

Ruzmanz

Top Contributor
Stil ist ein enum und sollte so aussehen:

Java:
public enum Stil {
    MOTIF, JAVA, NIMUBS, DEFAULT;
}
 

JonasO

Mitglied
Hey Zusammen, zunächst einmal danke für die Antworten!
Hab jetzt wie von Ruzmanz vorgeschlagen einfach das enum Stil aufgestellt und es funktioniert :) was ja an sich recht offensichtlich ist, mit dem Nimbus gibt es in der tat Probleme, bin aber noch nicht dazu gekommen..
Cheers und ein Schönes WE!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Paty JFrame anfänger bräuchte hilfestellung AWT, Swing, JavaFX & SWT 7
N 3D Games anfänger AWT, Swing, JavaFX & SWT 10
C Swing AWT GUI Anfänger Aufgabe AWT, Swing, JavaFX & SWT 7
S Hilfe bei Java Gui Anfänger AWT, Swing, JavaFX & SWT 5
I Erste Desktop Software - blutiger Anfänger AWT, Swing, JavaFX & SWT 4
R Flickr-Flickr4Java Anfänger AWT, Swing, JavaFX & SWT 2
D [Anfänger]ComboBox erstellt Einträge in einer anderen ComboBox AWT, Swing, JavaFX & SWT 3
J Anfänger GUI Problem bei der Ausführung eines sehr einfachen Programms AWT, Swing, JavaFX & SWT 2
T Swing NullPointerException beim auslesen von jTextField - Anfänger! AWT, Swing, JavaFX & SWT 3
M JFrame - Anfänger, kurze Erklärung AWT, Swing, JavaFX & SWT 5
G Swing anfänger AWT, Swing, JavaFX & SWT 2
N Swing JTable anfänger frage AWT, Swing, JavaFX & SWT 2
K AWT Anfänger AWT, Swing, JavaFX & SWT 6
K Swing SwingGUI - Erstellen für Anfänger AWT, Swing, JavaFX & SWT 15
P Anfänger Problem AWT, Swing, JavaFX & SWT 8
2 Anfänger problem: Buttenklick soll reagieren AWT, Swing, JavaFX & SWT 9
S Button Größe - Anfänger AWT, Swing, JavaFX & SWT 13
S Anfänger - JFrame/JLabel nicht sichtbar AWT, Swing, JavaFX & SWT 5
R Panel dupliziert sich und Textboxes werden nicht angezeigt [Anfänger] AWT, Swing, JavaFX & SWT 6
K GUI-Hilfe für Anfänger AWT, Swing, JavaFX & SWT 15
P Stack Anfänger AWT, Swing, JavaFX & SWT 8
R AWT [Anfänger] Darstellungsfehler bei Größenändereung einese Fensters AWT, Swing, JavaFX & SWT 2
R AWT [Anfänger] keine atives Aussehen von Buttons AWT, Swing, JavaFX & SWT 4
R AWT [Anfänger] Radio Buttons NetBeans 6.7.1 AWT, Swing, JavaFX & SWT 2
S Anfänger: Layoutproblem ! AWT, Swing, JavaFX & SWT 3
P Anfänger Probleme mit JTable bitte um Rat! AWT, Swing, JavaFX & SWT 5
E Anfänger-JPanel aus Menü aufrufen AWT, Swing, JavaFX & SWT 4
B Anfänger: Panel bei Button Klick anzeigen? AWT, Swing, JavaFX & SWT 4
L Design-Probleme (Swing-Anfänger) AWT, Swing, JavaFX & SWT 6
B GUI Anfänger -> Versionsunterschiede in Swing 1.5 / 1.4 . AWT, Swing, JavaFX & SWT 27
OZAN86 einfaches Fenster öffnen scheitert AWT, Swing, JavaFX & SWT 18
P Swing Empfehlungen für einfaches Computerspiel AWT, Swing, JavaFX & SWT 4
J JavaFX JavaFX Canvas einfaches Zeichenprogramm AWT, Swing, JavaFX & SWT 7
T Einfaches Problem mit ActionListener AWT, Swing, JavaFX & SWT 2
P Einfaches GUI läuft nicht AWT, Swing, JavaFX & SWT 6
E Einfaches Quadrat zeichnen AWT, Swing, JavaFX & SWT 6
T 2D-Grafik Tutorial für ein einfaches Zeichenprogramm! AWT, Swing, JavaFX & SWT 2
2 Einfaches XY Diagramm selbst zeichnen? AWT, Swing, JavaFX & SWT 6
S LayoutManager Einfaches Programm mit VE und Eclipse3.6 realisieren AWT, Swing, JavaFX & SWT 2
N SWT Einfaches Problem beim Layout AWT, Swing, JavaFX & SWT 8
F Einfaches Fenster "ordentlich" darstellen AWT, Swing, JavaFX & SWT 8
T einfaches Menü in swing das nicht herunterklappt? AWT, Swing, JavaFX & SWT 4
M Einfaches GUI basteln? AWT, Swing, JavaFX & SWT 5
B Einfaches JScrollPane mit Bildern füllen AWT, Swing, JavaFX & SWT 2
P GridBagLayout einfaches Beispiel geht nicht? AWT, Swing, JavaFX & SWT 5
M treetable einfaches beispiel gesucht AWT, Swing, JavaFX & SWT 6
G Einfaches frame mit einigen Rechtecken (Anfängerfrage) AWT, Swing, JavaFX & SWT 6
M Datenbericht aus Datenbank darstellen.(einfaches Konzept) AWT, Swing, JavaFX & SWT 2
M "einfaches Grafikobjekt erzeugen" AWT, Swing, JavaFX & SWT 8
VPChief Nach abspielen von Sound reagiert das Program nichtmehr AWT, Swing, JavaFX & SWT 9
S Textfeld soll auf Änderungen von nutzer und program reagiern AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben