# "Programmieren lernen mit Java" Fehler



## Chillerchief (11. Jul 2012)

Hallo Forum

Ich habe das Buch Programmieren lernen mit Java. Ich bin mir sicher ich habe den Code richtig abgeschrieben und auch als ich ihn kopiert habe gab es sogar noch mehr Fehler. Also der Code ist folgender: 

```
/* Beispiel mit Programmfenster */

import java.awt.*;
import javax.swing.*;
public class GrussMitProgrammfenster extends JFrame {
    public GrussMitProgrammfenster() {
        super("Hallo");

        Icon icon = new ImageIcon("java-logo.jpg");
        JLabel label1 = new JLabel("Viel Erfolg beim", JLabel.CENTER);
        JLabel label2 = new JLabel ("Programmieren mit Java!", JLabel.CENTER);
        JLabel label3 = new JLabel(icon);
        Font schrift = new Font("SansSerif", Font.Bold, 24);
        label1.setFont(schrift);
        label1.setForeground(Color.red);
        label2.setFont(schrift);
        label2.setForeground(Color.red);
        Container c = getContentPane();
        c.setLayout(new FlowLayout());
        c.setBackground(Color.white);
        c.add(label1);
        c.add(label2);
        c.add(label3);j
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(300,250);
        setVisible(true);
    }
    
    public static void main(String [] args) {
        new GrussMitProgrammfenster();
    }
}
```

Und wenn ich es Compilieren will zeigt mir einen Fehler an (Bild im Anhang)
Ich wäre froh könnte sich jemand das mal anschauen 
MfG
July


----------



## hüteüberhüte (11. Jul 2012)

Probiere mal javax.swing.WindowConstants.EXIT_ON_CLOSE


----------



## hüteüberhüte (11. Jul 2012)

Chillerchief hat gesagt.:


> [JAVA=23]        c.add(label3);j[/code]



Ach so, der Fehler liegt an dem j


----------



## DaveIT (11. Jul 2012)

ist die bilddatei auch im gleichen ordner wie dein programm?


----------



## Fab1 (11. Jul 2012)

hüteüberhüte hat gesagt.:


> Probiere mal javax.swing.WindowConstants.EXIT_ON_CLOSE



Den Fehler den du benannt hast existiert aber trotzdem. Alternativ kannst du auch die Zahl "3" verwenden. setDefaultCloseOperation(3);


----------



## hüteüberhüte (11. Jul 2012)

Hab mich doch schon korrigiert..


----------



## Chillerchief (11. Jul 2012)

Heisst das also der Fehler war nur bei dem j? Dumm dass ich das nicht gesehen habe  Muss ich sonst noch was verändern? Jetzt sollte es eigentlich stimmen... Probiere es gleich wenn ich wiedrr zuhause bin  Danke!


----------



## Fab1 (11. Jul 2012)

Wenn du das 
	
	
	
	





```
setDefaultCloseOperation(EXIT_ON_CLOSE);
```
 so lässt, dann solltest du einen Compilerfehler bekommen, also dass auch ändern.


----------



## extends (11. Jul 2012)

Blödsinn ... wenn man schon von JFrame erbt (was natürlich keinen sinn macht) kann man auch einfach EXIT_ON_CLOSE schreiben. Vorher mal selbst ausprobieren bevor man mist labert.


----------



## final (11. Jul 2012)

Finals sind immer groß zu schreiben, also:
Color.red => Color.RED
Color.white => Color.WHITE
Font.Bold => Font.BOLD


----------



## Fab1 (11. Jul 2012)

extends hat gesagt.:


> Blödsinn ... wenn man schon von JFrame erbt (was natürlich keinen sinn macht) kann man auch einfach EXIT_ON_CLOSE schreiben. Vorher mal selbst ausprobieren bevor man mist labert.



Mh hatte es kurz getestet allerdings ohne Vererbung. Trotz allem könntest du dich auch etwas netter ausdrucken...


----------



## Chillerchief (11. Jul 2012)

Also ich habe keine Ahnung ich probieres einfach mal  Es geht erst um das compilieren etc. Noch keine codes selber schreiben sondern nur abschreiben  Also ich probiers mal und geve dann nochmals ein Feedback  Danke !

Sent from my awesome Galaxy S III


----------



## vanny (11. Jul 2012)

extends hat gesagt.:


> Blödsinn ... wenn man schon von JFrame erbt (was natürlich keinen sinn macht) kann man auch einfach EXIT_ON_CLOSE schreiben. Vorher mal selbst ausprobieren bevor man mist labert.



1. Ist das wirklich nicht die Art und Weise, die wir hier gerne sehen, zumindest was das "...mist labert" angeht.

2. Ja du hast Recht, wenn man von JFrame erbt, dann genügt ein einfaches EXIT_ON_CLOSE.

3. Macht evtl. auch das erben von JFrame Sinn. Ich habe zum Beispiel eine Klasse VFrame, die von JFrame erbt und mir Konstruktoren bereitstellt, die ich presönlich gerne so hätte. EXIT_ON_CLOSE kann ich zum Beispiel mit einem einfachen boolean zuweisen. Dann kann ich einen Faktor angeben, in welchem Größenverhältnis zum Screen der Frame angezeigt wird und ob er in´s Zentrum des Screens gesetztwerden soll. usw., usf.

Demnach waren 2 deiner 3 Aussagen, wie du es nanntes "Blödsinn".

Wäre nett, wenn du in Zukunft ein wenig weniger herrablassend zu deinen Forenmitgliedern bist.

Gruß Vanny


----------



## Landei (11. Jul 2012)

Irgendwann werden auch in Swing Enums Einzug halten, was dann viel Freude bei allen auslösen wird, die an solchen Stellen [c]3[/c] statt [c]EXIT_ON_CLOSE[/c] geschrieben haben. Solche Konstanten waren von Anfang an nur eine Notlösung, und wer sie mit Werten statt Namen anspricht, bettelt um Ärger.


----------



## Chillerchief (13. Jul 2012)

Also ich habe mal das j weggetan und nun funktionierts! Danke !


----------



## hüteüberhüte (13. Jul 2012)

Fehler mit ';' expected beziehen sich meist immer auf die vorherige Zeile, in der man ein ; vergessen hat. Aus meiner Anfängerzeit weiß ich das noch


----------



## Chillerchief (27. Jul 2012)

Ich habe schon wieder eine (etwa 20) Fehlermeldungen  Woran liegt das?


```
/*Programm zum Testen der Verwendung von Variablen
Datum: 26.07.2012
*/

public calss Variablen1 {
    public static void main(String [] args) {
    // Variablendeklarationen
        byte bZahl;
        short sZahl;
        int iZahl;
        long lZahl;
        float fZahl;
        double dZahl;
        boolean bestanden;
        char zeichen;

    // Wertzuweisungen
        bZahl = 28;
        sZahl = -18453;
        iZahl = 4356576;
        lZahl = 345236577970L;
        fZahl = 4.37456678f;
        dZahl = 3645.564782;
        bestanden = true;
        zeichen = '%';

    // Ausgabe der Variablenwerte
         system.out.print("bZahl=");
         system.out.println(bZahl);
         system.out.print("sZahl=");
         system.out.println(sZahl);
         system.out.print("iZahl=");
         system.out.println(iZahl);
         system.out.print("lZahl=");
         system.out.println(lZahl);
         system.out.print("fZahl=");
         system.out.println(fZahl);
         system.out.print("dZahl=");
         system.out.println(dZahl);
         system.out.print("bestanden=");
         system.out.println(bestanden);
         system.out.print("zeichen=");
         system.out.println(zeichen);
    }
}
```


----------



## Final_Striker (27. Jul 2012)

```
System
```
 schreibt man groß.


----------



## haui95 (27. Jul 2012)

Hey, 


```
System.out.printLn
```

System ist eine Klasse und muss groß geschrieben werden, und "printLn" ist eine vordefinierte Methode, die der Compiler nur dann erkennt, wenn die Groß- und Kleinschreibung beachtet wird.

Edit: Hmm... schon wieder zu spät


----------



## ARadauer (27. Jul 2012)

Chillerchief hat gesagt.:


> Ich habe schon wieder eine (etwa 20) Fehlermeldungen  Woran liegt das?



Wenn man zum Abschreiben von Code ein Fachforum braucht... würd ich mir Gedanken machen, ob das das richtige für dich ist... Der Compiler sagt dir genau an welcher Stelle der Fehler ist... und ein mal googeln bringt dir wahrscheinlich die Lösung...


----------



## haui95 (27. Jul 2012)

Wenn du schon die "float" und "long" Variablen mit einem Buchstaben als Erkennungsmerkmal versiehst, kannst du das auch bei deiner "double" Variable machen.  
	
	
	
	





```
dZahl = 3645.564782D;
```
jedoch muss du es nicht  Normalerweise muss man keinen Buchstaben hinter dem Wert der Variable setzen, da diese eigentlich nur der Übersichtlichkeit dienen. Spätestens wenn du ein Java Programm dekompilierst erkennst du, dass der Decompiler automatisch solche Buchstaben setzt. 
Somit sind diese eigentlich nicht unbedingt von Bedeutung.

MfG


----------



## Chillerchief (27. Jul 2012)

Es zeigt mir immer noch Fehler an und zwar auf dem S von System obwohl jetzt alles gross geschrieben ist...

Edit: Alle Fehler waren, weil ich class falsch geschrieben hatte :lol:  Sorry ^^
Aber danke


----------



## haui95 (27. Jul 2012)

Jetzt wo du es sagst, fällt es mir auch auf, dass du
	
	
	
	





```
class
```
  falsch geschrieben hast. 

Edit #19:  Habe die Methode 
	
	
	
	





```
println
```
 mit einer anderen verwechselt. Natürlich muss diese komplett klein geschrieben werden. 

Naja.. mein Fehler.


----------



## out of range (28. Jul 2012)

haui95 hat gesagt.:


> Wenn du schon die "float" und "long" Variablen mit einem Buchstaben als Erkennungsmerkmal versiehst, kannst du das auch bei deiner "double" Variable machen.
> 
> 
> 
> ...


Probier das doch einmal selbst aus:

```
long lZahl = 345236577970;
        float fZahl = 4.37456678;
```
Das wird garantiert zu einem Compile Error führen, denn das Literal L bzw. f ist hier mitnichten optional!


----------



## kaetzacoatl (28. Jul 2012)

Ich würde mal ein anderes Tuturial nehmen,
wenn alles was da drin steht falsch ist.
Andererseits fördert das deine Fähigkeiten beim
debuggen


----------

