Moin Leute,
bin hier, und generell in sachen java noch relativ neu und unerfahren und hätte da mal ne frage bezüglich einem Programm von mir. Kann gut sein dasses so nen Thema schon 10 mal gibt, aber wusste nicht wonach ich suchen sollte, sry^^. Also, habe eine Klasse für das generelle Erstellen von Fenstern(Window), eine für das Erstellen von Dialogen(Dialog) und zwei für den Start des ersten Fensters (Main und StartUp) erstellt. Mein Problem ist nun das ich wenn ich die WindowKlasse direkt starte(kompiliere) alles tadelos erstelt wird, wenn ich sie jedoch über meine Startprozedur(kompilieren von StartUp) laufen lasse, werden random irgendwelche Teile des Fensters nicht angezeigt. Ich verändere keinen Quelltext, jedoch wird das Fenster bei jedem mal kompilieren anders angezeigt (Die Objekte sind immer alle vorhanden, allerdings nicht immer alle sichtbar). Wenn ich allerdings über die DialogKlasse ein Objekt des ersten Fensters(Window) erstelle und die DialogKlasse kompiliere, welche auch selber ein Fenster erzeugt, wird das erste Fenster immer richtig angezeigt. An den verschiedenen Packages dürfte es nicht liegen, habe StartUp und Main auch schon im ViewPackage laufen lassen und es ist das gleiche passiert.
Ich benutze Eclipse Version 3.4.2 und habe das VEPlugin installiert, welches ich allerdings nicht mehr benutze, da es mir leichter fällt den Aufbau der Fenster selbst im Quelltext zu schreiben. Ich habe keine Visuellen Klassen benuzt (nur Standradklassen erstellt) und benutze das JDK 6 Update 12.
Also meine Frage beläuft sich jezt darauf, woran es liegt das das Fenster über den Weg mit der StartUp Klasse nicht richtig dargestellt wird, was ja eigendlich mal wieder vollkommen unlogisch ist. -.-
Naja, vielen dank fürs lesen schonmal , hier dann auch mal der Quelltext:
[HIGHLIGHT="Java"]package views;
import javax.swing.* ;
import java.awt.event.* ;
public class Window extends JFrame {
private static final long serialVersionUID = 1L;
JLabel Text1, Text2;
JTextField BenID;
JPasswordField Pwd;
JButton Ok;
public Window(int ViewNr){
switch (ViewNr) {
case 0:
editView0();
break;
}
}
public Window() {
editView0();
}
private void editView0() {
this.getContentPane().setLayout(null);
this.setTitle("Anmeldung");
this.setSize(230,150);
this.setVisible(true);
Text1 = new JLabel();
Text2 = new JLabel();
BenID = new JTextField();
Pwd = new JPasswordField();
Ok = new JButton();
Text1.setText("BenutzerID: ");
Text2.setText("Passwort: ");
Ok.setText("Anmelden");
Text1.setBounds(20,10,70,20);
BenID.setBounds(30,30,70,25);
Text2.setBounds(120,10,70,20);
Pwd.setBounds(130,30,70,25);
Ok.setBounds(60,70,110,25);
this.add(Text1);
this.add(Text2);
this.add(BenID);
this.add(Pwd);
this.add(Ok);
}
}
[/HIGHLIGHT]
---------------------------------------------------------------------------
[HIGHLIGHT="Java"]package views;
import javax.swing.* ;
import java.awt.event.* ;
public class Dialog extends JFrame {
private static final long serialVersionUID = 1L;
Window Anmeldung;
public Dialog() {
Anmeldung = new Window(0);
}
}
-------------------------------------------------------------------------
package startup;
import views.*;
public class Main {
Window Anmeldung;;
public Main() {
Anmeldung = new Window(0);
}
}[/HIGHLIGHT]
-----------------------------------------------------------
[HIGHLIGHT="Java"]package startup;
public class StartUp {
public static void main(String[] args) {
new Main();
}
}[/HIGHLIGHT]
PS.
Hab leider keine Ahnung wie ne übliche "StartKlasse" aussieht.
Ist etwas umständlich ich weiss, aber zu erklären warum ich die so angelegt habe sprengt wohl den Speicher vom Server auf dem das Board leuft^^
Also was ich damit erreichen möchte ist nur das das erzeugte Objekt Anmeldung auch den Namen Anmeldung bekommt (das mit StartUp erzeugte Objekt vom Typ Main hat ja irgendwie keinen Namen, was ich auch noch nicht so gans verstanden hab).
bin hier, und generell in sachen java noch relativ neu und unerfahren und hätte da mal ne frage bezüglich einem Programm von mir. Kann gut sein dasses so nen Thema schon 10 mal gibt, aber wusste nicht wonach ich suchen sollte, sry^^. Also, habe eine Klasse für das generelle Erstellen von Fenstern(Window), eine für das Erstellen von Dialogen(Dialog) und zwei für den Start des ersten Fensters (Main und StartUp) erstellt. Mein Problem ist nun das ich wenn ich die WindowKlasse direkt starte(kompiliere) alles tadelos erstelt wird, wenn ich sie jedoch über meine Startprozedur(kompilieren von StartUp) laufen lasse, werden random irgendwelche Teile des Fensters nicht angezeigt. Ich verändere keinen Quelltext, jedoch wird das Fenster bei jedem mal kompilieren anders angezeigt (Die Objekte sind immer alle vorhanden, allerdings nicht immer alle sichtbar). Wenn ich allerdings über die DialogKlasse ein Objekt des ersten Fensters(Window) erstelle und die DialogKlasse kompiliere, welche auch selber ein Fenster erzeugt, wird das erste Fenster immer richtig angezeigt. An den verschiedenen Packages dürfte es nicht liegen, habe StartUp und Main auch schon im ViewPackage laufen lassen und es ist das gleiche passiert.
Ich benutze Eclipse Version 3.4.2 und habe das VEPlugin installiert, welches ich allerdings nicht mehr benutze, da es mir leichter fällt den Aufbau der Fenster selbst im Quelltext zu schreiben. Ich habe keine Visuellen Klassen benuzt (nur Standradklassen erstellt) und benutze das JDK 6 Update 12.
Also meine Frage beläuft sich jezt darauf, woran es liegt das das Fenster über den Weg mit der StartUp Klasse nicht richtig dargestellt wird, was ja eigendlich mal wieder vollkommen unlogisch ist. -.-
Naja, vielen dank fürs lesen schonmal , hier dann auch mal der Quelltext:
[HIGHLIGHT="Java"]package views;
import javax.swing.* ;
import java.awt.event.* ;
public class Window extends JFrame {
private static final long serialVersionUID = 1L;
JLabel Text1, Text2;
JTextField BenID;
JPasswordField Pwd;
JButton Ok;
public Window(int ViewNr){
switch (ViewNr) {
case 0:
editView0();
break;
}
}
public Window() {
editView0();
}
private void editView0() {
this.getContentPane().setLayout(null);
this.setTitle("Anmeldung");
this.setSize(230,150);
this.setVisible(true);
Text1 = new JLabel();
Text2 = new JLabel();
BenID = new JTextField();
Pwd = new JPasswordField();
Ok = new JButton();
Text1.setText("BenutzerID: ");
Text2.setText("Passwort: ");
Ok.setText("Anmelden");
Text1.setBounds(20,10,70,20);
BenID.setBounds(30,30,70,25);
Text2.setBounds(120,10,70,20);
Pwd.setBounds(130,30,70,25);
Ok.setBounds(60,70,110,25);
this.add(Text1);
this.add(Text2);
this.add(BenID);
this.add(Pwd);
this.add(Ok);
}
}
[/HIGHLIGHT]
---------------------------------------------------------------------------
[HIGHLIGHT="Java"]package views;
import javax.swing.* ;
import java.awt.event.* ;
public class Dialog extends JFrame {
private static final long serialVersionUID = 1L;
Window Anmeldung;
public Dialog() {
Anmeldung = new Window(0);
}
}
-------------------------------------------------------------------------
package startup;
import views.*;
public class Main {
Window Anmeldung;;
public Main() {
Anmeldung = new Window(0);
}
}[/HIGHLIGHT]
-----------------------------------------------------------
[HIGHLIGHT="Java"]package startup;
public class StartUp {
public static void main(String[] args) {
new Main();
}
}[/HIGHLIGHT]
PS.
Hab leider keine Ahnung wie ne übliche "StartKlasse" aussieht.
Ist etwas umständlich ich weiss, aber zu erklären warum ich die so angelegt habe sprengt wohl den Speicher vom Server auf dem das Board leuft^^
Also was ich damit erreichen möchte ist nur das das erzeugte Objekt Anmeldung auch den Namen Anmeldung bekommt (das mit StartUp erzeugte Objekt vom Typ Main hat ja irgendwie keinen Namen, was ich auch noch nicht so gans verstanden hab).
Zuletzt bearbeitet von einem Moderator: