Anfänger braucht Hilfe

FlyingHarry

Mitglied
Hallo JavaCracks,

ich lese im Moment das Buch Programmieren mit Java, und hab schon einige Sachen (ab)geschrieben.Hallo Wlet,übergabe ect,...

nun schreibe ich grad eine Kreisberechnung & grussMitFensterausgabe:

leider hänge ich jetzt ein wenig,
der Code lautet :
Java:
/* 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 von 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);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(300,200);
        setVisible(true);
    }
    public static void main(String [] args) {
        new GrussMitProgrammfenster();
    }
}

leider schreibt mir die Konsole (CMD) immer Fehlermeldungen. Geschrieben hab ich es mit dem Editor.dann umgewandelt mit JAVAC leider ist da der hund drinnen.
Die Fehlermeldung lautet cannot find symbol.

zb.
symbol: class Jframe
grussmitprogrammfenster.java:20: error cannot find Container c=getContent

hab den Text schon 3xneu geschrieben.. oder ich überseh was.. könntet ihr mir kurz helfen ??

LG
 
DANKE..der Code funktioniert zwar aber es kommt jetzt die Fehlermeldung:
Execption in Thread "main" java.lang.noclassDefFoundError:

@Ikaron:

nein eigentlich nicht, es ist so im Buch beschrieben, das dient jetzt mehr dazu mal ein gefühl für die struktur zu entwickeln..

danke füreure Hilfe !!

ich nehme an bis bald
:lol:
 
Soweit ich weis, muss die main-Klasse immer manuell eingetragen werden. Um dir zu helfen, muss ich wissen, mit was du den Code kompilierst und wie du ihn ausführst?
 
also in deinem jetzigen code finde ich kein neu erzeugtes JFrame Object ?! oder übersehe ich es einfach nur ?

ich glaube dir fehlt :

Code:
JFrame frame = new JFrame("Fenster")

worin soll er sonst die JLabels anordnen ?

dadurch das deine Klasse JFrame erweitert und du
Code:
super()
aufrufst erhälst du zwar ein JFrame Object, aber ich sehe nirgends das du deine Labels dem JFrame , welches ja anonym ist und keine Referenz hat, hinzufügst. so
Code:
ala frame.getContentPane(add.label1);
z.B
 
Zuletzt bearbeitet:
also in deinem jetzigen code finde ich kein neu erzeugtes JFrame Object ?! oder übersehe ich es einfach nur ?

ich glaube dir fehlt :

Code:
JFrame frame = new JFrame("Fenster")

worin soll er sonst die JLabels anordnen ?

dadurch das deine Klasse JFrame erweitert und du
Code:
super()
aufrufst erhälst du zwar ein JFrame Object, aber ich sehe nirgends das du deine Labels dem JFrame , welches ja anonym ist und keine Referenz hat, hinzufügst. so
Code:
ala frame.getContentPane(add.label1);
z.B

ok, kann sein. Ichs eh ich muß mich da noch einw enig einlesen. Aber die Zeilen stehe so nicht im Buch... egal 1000send dank für eure mühe. werd mal ein paar Kapitel lesen...

wir lesen uns *gg

bis dann
 
naja es funktioniert ja auch mit aufruf von
Code:
super()
also du bekommst ein Frame Objekt, allerdings ohne referenz,

du müsstest also eingentlich über
Code:
this.
gehen um deine Labels hinzuzufügen wenn mich jetzt nicht alles täuscht, grade als Anfänger ist es schon net so einfach grade mit GUI und ohne IDE anzufangen , da grade wenn du noch nicht weit mit Java bist über nen TextEditor doch recht viel murx passiert

Hallo Welt etc. ist da schon recht simpel, aber angenehmer ist halt grade bei GUI Programmierung auf jeden fall ne Entwicklungsumgebung mit Syntax Highlighting, die dir gleich anzeigt wenn du s******e baust ^^

der "normale" weg ist eigentlich folgender

hier mal ohne polymorphie(vererbung)

Java:
import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Foo
{
// klassenvariablen
  JFrame frame ; 
  JPanel panel;
  JButton button ;
  
//Konstuktor
public Foo() 
{
	
// initialisiert deine Objekte ("Rahmen", label und Button)	
  frame = new JFrame("Fenster"); 
  panel = new JPanel(new BorderLayout());
  button = new JButton("Mein Button");
  
//fügt deinem panel den Button hinzu, dieser schritt muss stattfinden bevor du dein panel dem Frame hinzufügst
  panel.add(button); 
  
//fügt deinem Frame dein panel hinzu
  frame.getContentPane().add(BorderLayout.SOUTH,panel);
  
  frame.setSize(300,300);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setVisible(true); 
}
//main Methode(Einstigspunkt)
public static void main(String[]args)
{
// ruft den Konstruktor deiner Klasse auf und Erzeugt ein neues Foo Objekt
  new Foo(); 
}

}
 
Zuletzt bearbeitet:
dadurch das deine Klasse JFrame erweitert und du
Code:
super()
aufrufst erhälst du zwar ein JFrame Object, aber ich sehe nirgends das du deine Labels dem JFrame , welches ja anonym ist und keine Referenz hat, hinzufügst. so
Code:
ala frame.getContentPane(add.label1);
z.B

Er erweitert die Klasse JFrame. Er added seine Label auf dem ContentPane (Conatiner). Dass sollte auch so funktionieren. (Ist zwar etwas umständlich, aber geht).

@FlyingHarry
Poste doch mal den gesamten Fehler der in der Konsole erscheint.
 
naja umständlich und unübersichtlich grade wenn man neu einsteigt, ich habe oben mal ein Beispiel ohne Vererbung gepostet, Es erzeugt ein Frame mit panel und einem Button.

Als Einsteiger würde, wenn ich von mir ausgehe, wissen wollen wie genau die vorgänge ablaufen und mich nicht gleich auf polymorphe erstellung von objekten stürzen, wobei ich auch nicht mit GUI programmierung beginnen würde :bae:
 
Hi also das sagt mir die Konsole :


C:\Dokumente und Einstellungen\mannhar\Eigene Dateien\Java\programme\Uebung01>ja
va grussmitprogrammfenster

Exception in thread "main" java.lang.NoClassDefFoundError: grussmitprogrammfenst
er (wrong name: GrussMitProgrammfenster)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14
2)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
 
naja umständlich und unübersichtlich grade wenn man neu einsteigt, ich habe oben mal ein Beispiel ohne Vererbung gepostet, Es erzeugt ein Frame mit panel und einem Button.

Als Einsteiger würde, wenn ich von mir ausgehe, wissen wollen wie genau die vorgänge ablaufen und mich nicht gleich auf polymorphe erstellung von objekten stürzen, wobei ich auch nicht mit GUI programmierung beginnen würde :bae:

tsja ich hab schon gehört, aber das Buch beginnt halt nun mal so.. hast ein anderes für mich das es einfacher macht...?? :rtfm:
 
Hier liegt vielleicht schon der fehler ^^

Exception in thread "main" java.lang.NoClassDefFoundError: grussmitprogrammfenst
er (wrong name: GrussMitProgrammfenster)

schreib mal deine Klasse so beim kompilieren wie du sie auch gennannt hast

Java ist Case Sensitive 😉

PS: "JAVA-Von Kopf bis Fuß" kann ich nur empfehlen !
 
Zuletzt bearbeitet:
ahhh schurckenpack !!

DANKE und wie das gleich funkt...
ok ich muß also sehr sehr gut auf die GROß und klein schreibung achten...

danke nochmals für eure mühe..
 
😀

naja der kompiler (javac) sucht sonst nach einer Klasse grussmitprogrammfenster anstelle von GrussMitProgrammfenster

und die findet er dann nicht , darum dann dann die ClassNotFoundException
 
Ich kann dir nur den javavideokurs.de an's Herz legen! Deutlich einfacher als ein Buch zu lesen. Leider relativ teuer, aber dafür m.M.n auch qualitativ hochwertig. Den Preis kann man auch umgehen, wenn man jemanden kennt, der schon einen Account hat. Ich glaube aber, das ist laut AGB verboten.
 

Neue Themen


Zurück
Oben