Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich bin umsteiger von C auf Java, und hab mir von einem Arbeitskollegen ein paar PDF files mit Java Tutorials schicken lassen.
In dem Tutorial steht ich soll ein Frame mit 2 Buttons 1 Label und 1 TextField als Übung erstellen.
Hier mein Code:
Java:
import java.awt.Label;
import java.awt.Button;
import java.awt.Frame;
import java.awt.TextField;
public class GUI_Test
{
public static void main(String[] args)
{
new Frame("STRING");
new Button("STRING");
new Button("STRING");
new Label("STRING");
new TextField();
}
}
Allerdings wird mir beim ausführen nichts angezeigt. Könnte mir bitte jemand sagen woran das liegt.
Tja wo soll man da bloß anfangen? In C hast du doch auch nicht einfach drauf los programmiert oder? Ein bisschen lesen muss man vorher schon. Der gesamte Code ergibt keinen Sinn. Einfach Obekte erstellen die im Nirvana verpuffen bringt nichts.
Die Komponenten wie Buttons Textfelder etc. müssen dem Frame hinzugefügt werden, dann muss der Frame sichtbar gemacht werden etc. Ich würde auch eher ein Swing statt AWT Tutorial durcharbeiten. Galileo Computing :: Java ist auch eine Insel – 19 Grafische Oberflächen mit Swing mal lesen und durcharbeiten hilft für den Anfang sicherlich!
Als Umsteiger hat man es jenachdem von wo nach wo (?!) ein Problem oder ein Vorteil.
Als Umsteiger sollte man somit auf Lvl.0 anfangen und nicht auf Lvl.(X>0).
Dein Button,Lable und Textfield sind als Attribute nicht gegeben. somit sollte dies dann so aussehen:
!!! BEACHTE DIES IST NUR EIN BEISPIEL !!!
So nun sind die labels etc. Attribute deiner Klasse.
Als nächstes geht es darum ein JFrame (Fenster) zum laufen zu bringen.
Dafür gibst 2 Möglichkeiten... die verständlichste ist die hier:
Java:
import java.awt.Label;
import java.awt.Button;
import java.awt.Frame;
import java.awt.TextField;
public class GUI_Test
{
private JButton button1 ;
private JButton button2 ;
private JLabel label1 ;
private JTextField textfield1;
public static void main(String[] args)
{
JFrame f = new JFrame("Was auch immer:P"); //Dein Fenster und die Bezeichnung
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Art wie das fenster geschlossen wird.
f.setSize(600, 800); //Größe
f.setLocationRelativeTo(null); //Fenster zentrieren(Mitte des Bildschirms)
f.setLayout(new FlowLayout(null));
}
}
So nun hast du ein JFrame(Fenster) und die Labels etc.
sind nun Attribute deiner Klasse.
Jedoch noch keine Objekte in deinem JFrame.
Um alles klar und deutlich zu fassen werde ich ´dir einen
Code mit Umwegen zur verfügung stellen.
=> Sprich: es gibt eine leichtere Methode eine GUI zu entwickeln
Aber dennoch: Desto mehr Text desto mehr gewonnenes Anwendungspotential.
So. Um die Buttons etc. zu Objekten deines Fensters werden zu lassen machst du folgendes:
(roter Text)
Java:
import java.awt.Label;
import java.awt.Button;
import java.awt.Frame;
import java.awt.TextField;
public class GUI_Test
{
private JButton button1 ;
private JButton button2 ;
private JLabel label1 ;
private JTextField textfield1;
public static void main(String[] args)
{
JFrame f = new JFrame("Was auch immer:P");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(600, 800); //Größe
f.setLocationRelativeTo(null);
f.setLayout(new FlowLayout(null));
[COLOR="Red"]
f.setVisible(true); Abfrage zur sichtbarkeit von "f"
JLabel label1= new JLabel("Was auch immer");//Beschriftung+erstellung eines "bt"(siehe Attribute)
label1.setSize(100,30); //Größe des Buttons
label1.setLocation(400,200);
JButton button1 = new JButton("Button was weiß ich");
button1.setSize(100,30);
button.setLocation(290,200);
JButton textfield1 = new JButton("");
textfield1.setSize(100,30);
textfield1.setLocation(510,200);
f.add(label1); // "label1" ist Objekkt von "f"
f.add(button1); // "button1" ist Objekkt von "f"
f.add(textfield1); // "Textfield1" ist Objekkt von "f"
[/COLOR]
}
}
Man braucht die Komponenten nicht als Instanzvariablen. Es reicht, sie lokal zu erzeugen und dem Frame dann hinzuzufügen (was du übrigens wohl versehentlich auch machst).
Außerdem wird der Frame erst sichtbar gemacht, wenn alle Komponenten hinzugefügt wurden. Bei deinem Code würde man anfangs nichts sehen.
Und lauffähig ist es auch nicht, da du falsche Imports hast.
Das mit den falschen imports ist mir auch grad klar geworden
Sitze übrigens grad bei meinem Schülerpraktikum bei der Axa in Holweide
und habe das da obe grad so mal aus den Ärmeln geschüttelt...
Kann gut möglich sein, dass da Fehler drin sind... aber es´ist übersichtlich
und man weiß was man nach und nach zu machen hat
Zu Hause mache ich das komplett anders aber kann mir manche sachen
nicht merken...
Kleine Frage: "Man braucht die Komponenten nicht als Instanzvariablen."
=> Meinst du damit,dass man sie nicht als Attribute definieren muss?? :S