Problem beim Zugriff auf erzeugtes Objekt

runT

Mitglied
Hi,

Bin Neu hier! Aufgrund der guten Resonanz zu diesem Forum und der grossen Community, die dieses Forum auch bieten kann, hab ich mich auch angemeldet. Ich heisse Roberto und bin ein Student an der Hochschule für Technik in der Schweiz.

Ich hoffe Ihr könnt mir zu meinem Problem helfen, ich bin momentan an einer Semester-Arbeit dran an der Hochschule für Technik und da ich erst ein Novize bin ziemlich unerfahren oops: möchte ich von Euch wissen, was am beigefügten Code falsch ist innerhalb der Main Klasse.

Ich möchte den DamoXPLogin Konstruktor innerhalb der DamoXPLogin - Klasse, vom Main aus aufrufen. Aber leider kommt die Fehlermeldung "could not find symbol". Könnt Ihr mir da helfen, ist das ein Sichtbarkeit-Issue? Besten Dank für Eure Hilfe und Unterstützung.

Anbei der compiled Code, welches eben im main Fehler aufweist:

// Main - Class

public class DamoXPApplication {

public static void main(String[] args) {

DamoclesXPGui auswahl = new DamoclesXPGui ("Damocles XP");

auswahl.pack();
auswahl.setSize (600,400);
auswahl.setVisible(true);

DamoXPLogin startfenster = new DamoXPLogin ("Damocles XP Anmeldung");
startfenster.setSize(400, 200);
startfenster.setVisible(true);
}




// Klasse DamoXPLogin
package ch.sbb.P_OP_RM_RFT.DamoXP;

/**
*
* @author Roberto Badalamenti, Student ABB TS
*/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;

public class DamoXPLogin extends JDialog {

//Instanzierung der Variablen resp. Beschriftung der Felder
private JLabel namelabel = new JLabel("Name: ", SwingConstants.RIGHT);
private JTextField eingabeName;
private JLabel vornamelabel = new JLabel("Vorname: ", SwingConstants.RIGHT);
private JTextField eingabeVorname;
private JLabel unr = new JLabel("U-Nummer: ", SwingConstants.RIGHT);
private JTextField eingabeUNr;

//Buttons
private JButton ok, abbruch;

//Ausgaben der Benutzer-Eingaben in Variable speichern
private String ausgabeName;
private String ausgabeVorname;
private String ausgabeUNr;

/* JLabel ausgabeName;
JLabel ausgabeVorname;
JLabel ausgabeUNr;
**/
//Konstruktor Eingabefenster
DamoXPLogin(JFrame f, String fenstertitel) {
super (f,fenstertitel, true);

//Layout setzen
setResizable(false);
setLayout(new GridLayout(4,1));

//Textfelder hinzufügen, dazu werden 2 Panels hinzugefügt für die Buttons und für die Textfelder
//String message = (null, "Bitte geben Sie Name, Vorname und U-Nummer ein", JOptionPane.INFORMATION_MESSAGE);
JPanel panel1 = new JPanel();
JLabel message = new JLabel("Bitte Name, Vorname und U-Nummer eingeben");
panel1.add(message);
eingabeName = new JTextField(20);
panel1.add(eingabeName);
add("North",panel1);

JPanel panel2 = new JPanel();
ok = new JButton("OK");
abbruch = new JButton ("Abbruch");
panel2.add(ok);
panel2.add(abbruch);
add("South", panel2);

pack(); //Anordnung der Button und Elemente auf der Fensterfläche
//bevorzugte Grösse initialisieren


class CMyActionListener implements ActionListener {

public void actionPerformed (ActionEvent ev) {
String label;
label = ev.getActionCommand();
if(label.equals("Abbruch")){
System.exit(0);
setVisible(false);
return;
}

if(label.equals("OK")){
ausgabeName = eingabeName.getText();
ausgabeVorname = eingabeVorname.getText();
ausgabeUNr = eingabeUNr.getText();
return;
}


//Das Mouse-Handling für die Buttons macht die Fensterklasse selbst
//also müssen wir diese Action registrieren
}
}
ok.addActionListener(new CMyActionListener());
abbruch.addActionListener(new CMyActionListener());




//Fenster schliessen resp. verbergen
setDefaultCloseOperation(WindowConstants.HIDE_ON_C LOSE);
}
}

Besten Dank an Alle erfahrenen Programmierer, die mir helfen können.:)

Grüsse us de Schwiz

Roberto
 
Moin!
Da fehlen die import Anweisungen für DamoclesXPGui und DamoXPLogin..

*grüssle*
MeinerEiner
 
Hello...

Thanks für deine Antwort zu meinem Issue. Leider haben die Import-Anweisungen nix gebracht, die Fehlermeldung "could not find symbol", constructor: DamoXPLogin("java.lang.string")

Hier nochmals den verbesserten Code:

package ch.sbb.P_OP_RM_RFT.DamoXP;

import java.io.FileInputStream;
import java.util.Properties;
import ch.sbb.P_OP_RM_RFT.DamoXP.DamoXPLogin;
import ch.sbb.P_OP_RM_RFT.DamoXP.DamoclesXPGui;



/**
*
* @author rbadalam
*/
public class DamoXPApplication {

public static void main(String[] args) {


DamoclesXPGui auswahl = new DamoclesXPGui ("Damocles XP");

auswahl.pack();
auswahl.setSize (600,400);
auswahl.setVisible(true);

/*
DamoXPAnmeldung infotext = new DamoXPAnmeldung ("Damocles XP");
infofenster.setSize(400,200);
infofenster.setVisible(true);
*/
DamoXPLogin startfenster = new DamoXPLogin ("Damocles XP Anmeldung");
startfenster.setSize(400, 200);
startfenster.setVisible(true);


}

}


Irgendwas mache ich sicher falsch, nur die GUI wird soweit gestartet, leider ruft er meine DamoXPLogin Klasse nicht auf, weil er eben mit diesem Cound not Find Symbol Fehler kommt. :rolleyes:

Gib mir Bescheid, wenn du mehr wissen möchtest.

Nochmals Merci!
Rob:)
 
Thanks für deine Antwort zu meinem Issue. Leider haben die Import-Anweisungen nix gebracht...
Doch gebracht haben die schon was.. Die import anweisungen wären schon nötig gewesen..
Code:
package ch.sbb.P_OP_RM_RFT.DamoXP;
Diese Anweisung hat vorher bei dir in der Mainklasse gefehlt. Jetzt ist natürlich kein Import mehr nötig.


Dein Login hat folgenden Konstruktor:
Code:
DamoXPLogin(JFrame f, String fenstertitel)
aufrufen tust du mit:
Code:
new DamoXPLogin ("Damocles XP Anmeldung");
Ergo: Du musst noch ein JFrame mit übergeben. Da ein Konstruktor nur mit einem String als Parameter nicht existiert. Steht auch in der Fehlermeldung:
"could not find symbol", constructor: DamoXPLogin("java.lang.string")

*grüssle*
MeinerEiner
 
Jungs,

Besten Dank für Eure Inputs und Support :-) .... aber.... tja, wie soll ich sagen, es ist schon eine Schande, entweder volles Blackout in meinen Hirnzellen :suspekt: ... oder ich hab eine grosse Wissens-Lücke, wahrscheinlich eher das Erste. Trotzdem weiss ich nicht was ich da in der Main übergeben soll... hier mal ein Code-Extrakt:

Code:
DamoXPLogin(JFrame f, String fenstertitel)

eben jetzt weiss ich nicht welcher Wert ich da in der Main übergeben soll
Code:
new DamoXPLogin (JFrame oder f?"Damocles XP Anmeldung");

Ich reg mich einfach zu früh auf :(... ich hoffe, ich kann noch Vieles dazulernen.

Vielleicht durch Euch oder via Forum... :-)

Gruss aus der Alpenregion

Rob
 
Der erste Übergabeparameter wird das Parent-Fenster sein. Also da übergibst du einfach dein Fenster. Der zweiter Parameter ist der Titel des Fensters, also ein String.

MFG

zEriX
 
Code:
DamoXPLogin(JFrame f, String fenstertitel)
eben jetzt weiss ich nicht welcher Wert ich da in der Main übergeben soll
Code:
new DamoXPLogin (JFrame oder f?"Damocles XP Anmeldung");
Ich reg mich einfach zu früh auf :(... ich hoffe, ich kann noch Vieles dazulernen.
Dir fehlen dann aber echt noch ne Menge Grundlagen.
Ich würde dir sehr empfehlen mal ein paar Tutorials zu machen (auf der Seite von Sun gibts ne Menge) oder schau dir mal das an:
http://www.galileocomputing.de/openbook/javainsel6/

Ich glaube nämlich nicht, das hier irgendjemand Lust und vorallem Zeit hat, dir Java von Grund auf beizubringen..

*grüssle*
MeinerEiner
 
Ist schon ok, also die Grundlagen habe ich so einigermassen im Griff.. nur habe ich einfach bei der Parameter-Übergabe einfach ein Blackout gehabt. Die Hitze kann echt sehr viel bewirken. Trotzdem ich gebe mir Mühe keine "einfachen" Fragen mehr zu posten.

Sorry für die Zeit, die ich Euch evtl. beansprucht habe.

Trotzallem danke vielmals, für die prompte Antwort an meine Beiträge.

Greetz

Rob
 
Zurück