Panels und Layouts in Frame & Framegröße
-
Hallo!
Ich bin gerade am java lernen, aber folgendes Programm funzt nicht:
import java.awt.*; import java.awt.event.*; import java.applet.Applet; public class SimpleApplet extends Applet { public void init() { Frame f = new Frame("Testframe"); f.setLayout(new BorderLayout()); f.setVisible(true); Panel northPanel = new Panel(); northPanel.setLayout(new FlowLayout()); add(f, northPanel); add(northPanel, "North"); Label l = new Label("Eingabe: "); northPanel.add(l); } }
Dieses Miststück soll ein NorthPanel für das Frame f erstellen, aber das label, dass ich dem NothPanel zuweise erscheint stets nicht in dem Frame, sondern im direkten Appletfeld auf der HTML-Seite.
Wie kann ich das realisieren, wie ich es will?Wie kann ich von einem Frame die Größe festlegen?
Und wie kann ich eigentlich genaue Positionen von Buttons oder ähnlichem Zeugs festlegen, wenn das geht?MfG MAV
-
1. Die add-Methode, die du aufrufst, gehört dem Applet und nicht dem Frame. Probier mal ein
f.add(northPanel,BorderLayout.NORTH);
aus.
2. Die Größe eines Frames kannst du mit setSize(width,height) festlegen.
3. Nimm Swing und kein AWT. Mit Swing wirst du glücklicher.
-
Hallo,
Also jetzt habe ich den Code:
import java.awt.*; import java.awt.event.*; import java.applet.Applet; public class SimpleApplet extends Applet { public void init() { Frame f = new Frame("Testframe"); f.setLayout(new BorderLayout()); f.setVisible(true); Panel northPanel = new Panel(); northPanel.setLayout(new FlowLayout()); add(f, northPanel); f.add(northPanel,BorderLayout.NORTH); Label l = new Label("Eingabe: "); northPanel.add(l); } }
Das Applet selber hat ein rotes X und das Frame ist leer.
Ahh, natürlich, THX.
Gut, das habe ich noch nicht gerlent, werd ih machen.
MfG MAV
-
Ich habe deinen Code mal ein bischen verändert:
[java]
import java.awt.;
import java.awt.event.;
import java.applet.Applet;public class SimpleApplet extends Applet
{public void init()
{
Frame f = new Frame("Testframe");
f.setLayout(new BorderLayout());Panel northPanel = new Panel();
northPanel.setLayout(new FlowLayout());
Label l = new Label("Hello :)");
northPanel.add(l);f.add(northPanel, BorderLayout.NORTH);
f.setSize (500,300);
f.setVisible(true);
}}[/code]
Das "setVisible" hat bei mir z.B. ein paar kleine Probleme verursacht, weil es an der falschen Stelle stand....man kann das Fenster natürlich noch nicht schließen.
Gibt es damit noch Probleme?
-
das mit dem Schließen ist mir bewusst, däämlich... ^^
aber ich bin ja noch Anfänger =)...*ausprobier*
Juchu, es klappt, danke ^^