Compiler spinnt }}-(



  • [java]
    import java.applet.;
    import java.awt.
    ;
    import java.awt.event.* ;

    public class TestFra extends Applet
    {
    public static void main(String [] args)
    {
    TestFram f = new TestFram("Test");
    f.init();
    }
    }

    class TestFram extends Frame
    implements WindowListener, ActionListener
    {
    public TestFram(String s) {super(s);}

    public void init()
    {
    setSize(300, 200);
    setLayout(new BorderLayout());

    Panel northPanel = new Panel();
    add(northPanel);

    Panel southPanel = new Panel();
    add(southPanel);

    Label l = new Label("Hallo. Dies ist ein kleines Testprogramm.");
    add(northPanel, l);

    Button b1 = new Button("Oeffnen");
    add(southPanel, b1);

    Button b2 = new Button("Schließen");
    add(southPanel, b2);

    add(southPanel, "North");
    add(southPanel, "South");

    setVisible(true);
    }

    public void actionPerformed(ActionEvent e)
    {
    System.out.println(e.getActionCommand());
    }

    public void windowOpened(WindowEvent e) {}
    public void windowClosed(WindowEvent e) {}
    public void windowIconified(WindowEvent e) {}
    public void windowDeiconified(WindowEvent e) {}
    public void windowActivated(WindowEvent e) {}
    public void windowDeactivated(WindowEvent e) {}
    public void windowClosing(WindowEvent e)
    {
    dispose();
    System.exit(0);
    }
    }[/code]
    Jetzt wirft er aber ne' Exception:

    java.lang.IllegalArgumentException: cannot add to layout: constraint must be a string (or null)
            at java.awt.BorderLayout.addLayoutComponent(BorderLayout.java:401)
            at java.awt.Container.addImpl(Container.java:664)
            at java.awt.Container.add(Container.java:518)
            at TestFram.init(TestFra.java:31)
            at TestFra.main(TestFra.java:10)
    Exception in thread "main"
    

    Wie meinen? 😞

    MfG MAV

    [ Dieser Beitrag wurde am 14.04.2003 um 20:39 Uhr von Mis2com editiert. ]


  • Mod

    Original erstellt von Mis2com:
    **
    Was meint der?**

    Das bezieht sich auf die folgenden Zeilen:

    [java]
    add(northPanel, l);
    add(southPanel, b1);
    add(southPanel, b2);[/code]
    Wenn du z.B. das Label l zum northPanel hinzufügen willst, dann geht das so:
    [java]
    northPanel.add(l);[/code]

    [ Dieser Beitrag wurde am 14.04.2003 um 20:40 Uhr von Gregor editiert. ]



  • @Gregor:
    DANKE; daran lags :):):)

    Aber manchmal nutzt man doch auch 2 Paramter für add, wofür das?

    MfG MAV



  • OK, neues Problem:
    [java]
    import java.applet.;
    import java.awt.
    ;
    import java.awt.event.* ;

    class TestFra extends Frame
    implements WindowListener, ActionListener
    {
    public static void main(String [] args)
    {
    TestFra f = new TestFra("Test");
    f.init();
    }

    public TestFra(String s) {super(s);}

    public void init()
    {
    setSize(300, 200);
    setLayout(new BorderLayout());

    Panel northPanel = new Panel();

    Panel southPanel = new Panel();

    Label l = new Label("Hallo. Dies ist ein kleines Testprogramm.");
    northPanel.add(l);

    Button b1 = new Button("Oeffnen");
    southPanel.add(b1);

    Button b2 = new Button("Schließen");
    southPanel.add(b2);

    add(southPanel, "North");
    add(southPanel, "South");

    setVisible(true);
    }

    public void actionPerformed(ActionEvent e)
    {
    System.out.println(e.getActionCommand());
    }

    public void windowOpened(WindowEvent e) {}
    public void windowClosed(WindowEvent e) {}
    public void windowIconified(WindowEvent e) {}
    public void windowDeiconified(WindowEvent e) {}
    public void windowActivated(WindowEvent e) {}
    public void windowDeactivated(WindowEvent e) {}
    public void windowClosing(WindowEvent e)
    {
    dispose();
    System.exit(0);
    }
    }[/code]
    Jetzt beendet er aber nicht, wenn ich auf das X klicke und im Ausgabefenster kommt auch nix raus, wenn ich auf einen Button klicke. 😞

    PS: Und die Applet-Fenster krieg ich auch nimmer weg 🙂

    MfG MAV


  • Mod

    Original erstellt von Mis2com:
    **
    Aber manchmal nutzt man doch auch 2 Paramter für add, wofür das?
    **

    Das ist eher ne Ausnahme. Der 2. Parameter gibt dann z.B. etwas über die Lage der Komponente an, die du dem Container hinzufügen möchtest.

    Zum Beispiel beim BorderLayout: Du hast ja auch mal als 2.Parameter "North" oder auch "South" angegeben. Damit sagst du, wo die Komponente hin soll. Bei "North" also nach oben usw.

    BTW: Ich empfehle dir, statt "North" die Konstante BorderLayout.NORTH zu nehmen. Vielleicht ändert sich diese Konstante in einer zukünftigen Java-Version ja mal. Dann würde ein Programm, in dem du "North" genommen hast, nicht mehr funktionieren.


  • Mod

    Original erstellt von Mis2com:
    **
    Jetzt beendet er aber nicht, wenn ich auf das X klicke und im Ausgabefenster kommt auch nix raus, wenn ich auf einen Button klicke. 😞
    **

    Dir fehlt noch ein "addWindowListener(this);". ...zum Beispiel in der init-Methode.


  • Mod

    Original erstellt von Mis2com:
    **
    Jetzt beendet er aber nicht, wenn ich auf das X klicke und im Ausgabefenster kommt auch nix raus, wenn ich auf einen Button klicke. 😞
    **

    ...und für die Buttons fehlt dir ein:

    b1.addActionListener(this);

    und

    b2.addActionListener(this);

    [ Dieser Beitrag wurde am 14.04.2003 um 20:53 Uhr von Gregor editiert. ]



  • Ahhh, stimmt, ich hab noch viel zu lernen. 🙂
    Dankeschön!

    Und nochmals Danke für den Tipp mit dem BorderLayout.NORTH etc., habs geändert. 🙂

    Jetzt funktioniert alles. 😎

    Naja, aber nur dank eurer Hilfe.
    Oje, das wird ja lustig mit Java.
    Naja, egal, jetzt geht's in dem Tut erstmal an Swing. 😎
    Ach, könnt ihr nichts zu dem Java-Spiele etc. Thread sagen?
    ich habe ihn schon in diversen Foren gemacht, aber keinerlei Antwort erhalten. 😞

    Nochmals THX an alle Helfenden. :):)

    MfG MAV

    PS:
    Ein Java Fenster, bei dem man noch nicht Beenden konnte, hängt jetzt mitten in der Landschaft rum und lässt sich net beenden. 😃

    PPS:
    Gregor:
    Ja, hab ich schon eingebaut, THX. 😉

    [ Dieser Beitrag wurde am 14.04.2003 um 21:01 Uhr von Mis2com editiert. ]


  • Mod

    Original erstellt von Mis2com:
    **
    Ein Java Fenster, bei dem man noch nicht Beenden konnte, hängt jetzt mitten in der Landschaft rum und lässt sich net beenden. 😃
    **

    🙂 ...lustig! 🙂 ...die einfachste Möglichkeit, das zu Beenden, ist wohl, die IDE zu schließen und neu zu starten.


  • Mod

    Original erstellt von Mis2com:
    das wird ja lustig mit Java.

    Siehste, das Wichtigste hast du schon gelernt:

    Java macht Spaß! 🙂

    [ Dieser Beitrag wurde am 14.04.2003 um 21:07 Uhr von Gregor editiert. ]


  • Mod

    Original erstellt von Mis2com:
    **
    Ach, könnt ihr nichts zu dem Java-Spiele etc. Thread sagen?
    ich habe ihn schon in diversen Foren gemacht, aber keinerlei Antwort erhalten.**

    Dazu kann ich leider nichts sagen. ...aber bestimmt weiß die Elise da mehr! ...oder O'Dog! 🙂

    EDIT: Generell gibt es verschiedene Wege, soetwas mit Java zu machen. Entsprechend wirst du auch verschiedene Voraussetzungen auf dem Server brauchen.

    [ Dieser Beitrag wurde am 14.04.2003 um 21:13 Uhr von Gregor editiert. ]



  • Jep... 😉
    Wenns klappt 🙂
    Ich fand vorher mit dem Kompilieren immer doof, in der Konsole und so.
    Naja, aber sone IDE ist schon was Feines. 🙂

    Nochmal bitte für den anderen Thread über Java-Applets für Multiplayer z.B.:
    Aber dieser Thread ist doch eigentlich etwas ganz einfaches.
    Einfach nur, ob man für z.B. einen Java-Chat spezielle Server-Anforderungen braucht. 😞
    Ich will sowas unbedingt machen, aber seit gestern antwortet mir niemand darauf.
    Hat denn keiner ne Ahnung? 😞

    [ Dieser Beitrag wurde am 14.04.2003 um 21:11 Uhr von Mis2com editiert. ]



  • Ahso...
    Nagut, hoffentlich bald, ich möchte es heute auf alle Fälle noch wissen. :(((


Anmelden zum Antworten