Zugriff von Klasse 2 auf Klasse 1 (die main methode hat)

Status
Nicht offen für weitere Antworten.

PELLE

Bekanntes Mitglied
Natürlich habe ich schon in die FAQ geschaut dennoch verstanden bzw. auf mein Konstrukt verstanden habe ich es nicht so dass ich das ganze anwenden konnte.

Bisher habe ich den Zugriff auf Klassen im immer so gemacht: Zugriff von Klasse1 auf Klasse2:

Klasse2.textfield.getText();


das soll ja nicht so toll sein :wink: weiterhin fragte ich mich immer wie kann ich aber von der Klasse2 auf die Klasse1 mit main methode zugreifen ?

Ich kann immer von Klasse1 auff alle anderen zugreifen aber nie von Klasse2,3,4,5 auf Klasse1 und deren instanzvariablen bzw. KlassenMethoden/Objektmethoden

An meinen Klassen hier könnte mir das jemand kurz erklären so dass das erklärte auch an meinem Beispiel funktioniert?

1. Klasse mit main methode:

Code:
ublic class MainWindow extends JFrame
{    static final long serialVersionUID = 1L;
     [b] boolean ladestatus;[/b]

   public MainWindow()
   {
      super("bla");      
                   
      RechnungPanel  RP = new RechnungPanel();
      SettingsPanel SP = new SettingsPanel();
      HelpPanel     HP = new HelpPanel();     
      
      JTabbedPane jtp = new JTabbedPane();     
      
      jtp.addTab("<html><font size=5>Rechung</font size></html>", RP);
      jtp.addTab("<html><font size=5>Settings</font size></html>", SP);          
      jtp.addTab("<html><font size=5>Help</font size></html>", HP); 
      
      add(jtp);
          
   }
   class RechnungPanel extends JPanel implements ActionListener
   {      
      
     private  JComboBox SourceDirectoryCB = new JComboBox();      

      public RechnungPanel(MainWindow mWindow)
      {
        setLayout(null);       

        add(SourceDirectoryCB);   
        SourceDirectoryCB.setBounds(581,107,280,25);       
        SourceDirectoryCB.setFont(new Font("Arial",Font.BOLD, 12));  
         
         SourceDirectoryCBEinlesen();      
         
         
      }  //...................................... KONSTRUKTOR ENDE ........................................ //

      public void [b]SourceDirectoryCBEinlesen()[/b]
      {
          File path = new File(SettingsPanel.sourceDirDefaultTF.getText());
          FileFilter filefilter = new FileFilter()
          {
             public boolean accept(File file)
             {
                return file.isDirectory();
             }
          };
          File[] zipfiles = path.listFiles(filefilter);
          for(int i = 0 ; i < zipfiles.length ; i++)
          {
            SourceDirectoryCB.addItem(zipfiles[i].getName());
          }
      }

      public void defaultValuesAuslesenAusDatei()
      {
          try
          {
             Properties props = new Properties();
             File ini = new File("settings.ini");
             props.load(new FileInputStream(ini));
             String volume = System.getProperty("user.dir");
             
             SettingsPanel.iniSourceDirDefault = props.getProperty("defaultVerzeichnisSource");
             
             String saved = props.getProperty("usersettingsSaved");        
             if  (saved.contains("true"))
             {           	 
                 SettingsPanel.sourceDirDefaultTF.setText(SettingsPanel.iniSourceDirDefault);
               
             }            	            
          }
          catch (Exception e)
          {
               e.printStackTrace();
          }
      }
      
      public void actionPerformed(ActionEvent e)
      {   
    
      }       
  
       
    }
     
   public static void main(String args[])
   {
      MainWindow Fenster = new MainWindow();
      Fenster.setSize(960,565);
      Fenster.setLocationRelativeTo(null);
      Fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      Fenster.setResizable(false);
      Fenster.setVisible(true);
    
   }
}


2. Klasse bzw. 2. Karteireiter (Tab)

Code:
public class SettingsPanel extends JPanel implements ActionListener
{
	static final long serialVersionUID = 1L;
	
	private JButton buttonSaveSettings;
        

    public SettingsPanel()
    {
    	

        buttonSaveSettings = new JButton("<html>[b]Save Settings[/b]</html>");
     
        setLayout(null);
     
        add(buttonSaveSettings);       
        
        buttonSaveSettings.setBounds(320, 370, 90, 35);
      
       
      
        buttonSaveSettings.addActionListener(this);   
      
    
      
    } /* -------------------------------------- Konstruktor Ende -------------------------------------*/
  

    public void actionPerformed(ActionEvent e)
    {  
                
        if(e.getSource().equals(buttonSaveSettings))
        {
           
           "MainWindow".SourceDirectoryCBEinlesen(); //funktioniert so nicht
        }        
    }

}


3. Klasse bzw. 3. Karteireiter (Tab)


Code:
public class HelpPanel extends JPanel implements ActionListener
{
	
	static final long serialVersionUID = 1L;
	public HelpPanel()
	
	{
		
	}
	
	
	public void actionPerformed(ActionEvent e)
    {       
       
        
    }
	
	

}

Fragen:

1.) Wie kann ich von Klasse 2 aus eine Methode von Klasse 1 aufrufen ? z.B. die Methode
Code:
SourceDirectoryCBEinlesen();
dich ich gerne aufrufen würde in der actionPerformed Methode der Klasse 2.

2. Wie kann ich von Klasse 2 aus auf die Klassenvariable ladestatus; von Klasse 1 zugreifen?

Würde mich sehr über gute Antworten freuen :wink:
 

Wildcard

Top Contributor
Komm erstmal weg von der Vorstellung das Klassen mit Klassen kommunizieren.
Das tun sie nicht. Klassen sind abstrakte Konzepte.
Eine Klasse ist eine Schablone aus der man Objekte erstellen kann.
Diese Objekte kommunizieren.
Das es nicht so einfach über den Klassennamen funktionieren kann ist klar, denn es können beliebig viele Objekte von einer Klasse erstellt werden, der Klassenname ist also nicht genug um ein Objekt eindeutig zu adressieren.
Man löst das mit Referenzen.
Will Objekt a also mit Objekt b kommunizieren, braucht Objekt a eine Referenz auf b mit der es dann b.machWas() aufrufen kann.
Auf dein Beispiel Bezogen muss dem Objekt von Klasse 2 also eine Referenz auf ein Objekt der Klasse 1 übergeben werden, damit 2 dort eine Methode aufrufen kann.
 

PELLE

Bekanntes Mitglied
Wildcard hat gesagt.:
Auf dein Beispiel Bezogen muss dem Objekt von Klasse 2 also eine Referenz auf ein Objekt der Klasse 1 übergeben werden, damit 2 dort eine Methode aufrufen kann.

Welches Objekt von Klasse 2 meinst du denn könntest du mir das zeigen? (Vllt. hast du mir auch einen guten link am besten in deutsch wo das ganze mit Beispiel steht)

Wie übergebe ich diese Referenz auf objekt der klasse 1 ? Wie sähe denn diese Syntax aus?
 

PELLE

Bekanntes Mitglied
habe dies in die 1. Klasse eingefügt:
Code:
private SettingsPanel sPanel;
(direkt unter die klasse)

in den KOnstruktor:

Code:
public MainWindow(SettingsPanel sPanel)
   {
	   super("bla");
	   
	   this.sPanel = sPanel;


In die actionPerformed Methode:

Code:
 sPanel.targetDirSet();

soweit so gut wenn da nicht das hier wäre in der main methode der klasse1:
Code:
MainWindow Fenster = new MainWindow(sPanel);


bekomme eine Fehlermeldung wegen obigem "sPanel"

cannot make a static reference to the non static field "sPanel
"


habe nun ganz obiges :
Code:
private SettingsPanel sPanel;
(direkt unter die klasse)
in
Code:
static SettinsPanel sPanel;
umgewandelt. Nun geht es aber es gibt ja laut dem hier :

http://www.java-forum.org/de/viewtopic.php?t=50398&highlight=static+reference

auch ne lösung ohne static. Nur weiß ich noch net wie ^^ habe das hier gelesen: http://www.java-forum.org/de/viewtopic.php?t=50398&highlight=static+reference

verstehs aber net so ganz... denn obiger link beschreibt ja eher die lösung wie man in der main-methoder über eine public get/set methode auf die eigenschaften einer private instanz zugreift, das mache ich ja gar nicht.
 

PELLE

Bekanntes Mitglied
In der 2.Klasse gebe ich dies ein unterhalb der Klassendefinition.

Code:
MainWindow meinW = new MainWindow();

Im Konstruktor dies.:

Code:
meinW."jetzt springt hier im Eclipse eine liste mit variablen und methoden auf"

Ich kann zwar in dieser Liste auf die attribute der Klasse MainWindow zugreifen, aber nicht auf die Methoden der Klassen MainWindow.

Könnte mir jemand sagen wie es auch mit den Methoden funktionieren würde ? Damit ich so drankomme:
Code:
meinW.SourceDirectoryCBEinlesen();

Habe auch die class SettingsPanel mit extends MainWindow gemacht, dennoch hatte ich kein Zugriff auf die Methoden von MainWindow. Irgendwas fehlt da noch...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
M Klassen Zugriff auf getMethode ohne Klasse zu erzeugen Allgemeine Java-Themen 6
S Zugriff auf innere Klasse Allgemeine Java-Themen 3
X Zugriff auf ComboBoxen in Hauptklasse von zweiter Klasse aus Allgemeine Java-Themen 8
S Zugriff auf Klasse Allgemeine Java-Themen 4
S Innere Klasse: Zugriff auf äußere Variable Allgemeine Java-Themen 5
J Zugriff auf Map in anderer Klasse Allgemeine Java-Themen 2
G Zugriff auf Variable in abgeleiteter Klasse Allgemeine Java-Themen 6
B Zugriff auf Attribute/Methoden der init-Klasse Allgemeine Java-Themen 10
LucasGlockner Effizienter byte-Zugriff auf ein long[]-Array Allgemeine Java-Themen 8
W Klassen Zugriff auf ein Textfile aus allen Klassen. Allgemeine Java-Themen 2
izoards Zugriff auf gemeinsame Ressource (CSV-File) Allgemeine Java-Themen 3
S Java Zugriff auf Netzwerklaufwerk Allgemeine Java-Themen 1
sascha-sphw Java 9 module Zugriff auf eine resource einer anderen JAR Allgemeine Java-Themen 0
KeexZDeveoper Zugriff auf Methoden vom Server Allgemeine Java-Themen 7
O Zugriff auf mySQL ohne JDBC Allgemeine Java-Themen 3
P Element einer Liste wurde hinzugefügt, aber es gibt keinen Zugriff Allgemeine Java-Themen 2
B Maven Zugriff auf files aus einem kompilierten jar Allgemeine Java-Themen 15
S Zugriff auf jUnit Test Suite Runner-Instanzen innerhalb von Test Classes Allgemeine Java-Themen 7
W Zugriff auf Objektvariablen vs. Übergabe Allgemeine Java-Themen 3
Tommy Nightmare HTTP Zugriff auf Internetseite im Loginbereich Allgemeine Java-Themen 5
H Zugriff auf PHP Allgemeine Java-Themen 4
B DB-Zugriff einer Webanwendung funktioniert nicht mit Java 7 Allgemeine Java-Themen 2
M WebService - Zugriff auf Webservice Methode über Browser Allgemeine Java-Themen 1
O JNA Zugriff auf Funktion aus DLL Allgemeine Java-Themen 0
O Zugriff auf Windows Zertifikatstore Allgemeine Java-Themen 2
M Kein Zugriff auf microSD Karten Allgemeine Java-Themen 4
T Zugriff auf Datenbank Allgemeine Java-Themen 1
J Zugriff auf IMAP GMail Konto scheitert. Allgemeine Java-Themen 2
P Frontend- Zugriff auf WS- Backend Allgemeine Java-Themen 0
U Zugriff auf Datei sperren Allgemeine Java-Themen 5
N Best Practice Semi-Synchronized Zugriff Allgemeine Java-Themen 0
C Zugriff auf Event felder Allgemeine Java-Themen 0
M Threads synchroner Zugriff (add/delete/read) auf eine Liste Allgemeine Java-Themen 6
F Zugriff Verweigert bei Kopieroperation? Allgemeine Java-Themen 4
T JNI: kein Zugriff auf VM in Callback-Methode eines Windows-Hooks Allgemeine Java-Themen 3
S Dynamischer Zugriff Allgemeine Java-Themen 4
Minonos Einem Programm Zugriff auf bestimmte Ordner geben Allgemeine Java-Themen 5
E Zugriff auf Dateien im Filesystem überwachen Allgemeine Java-Themen 5
H Programierstil: static - Zugriff vs. Staticzugriff Allgemeine Java-Themen 24
V Zugriff auf den Objekterzeuger? Allgemeine Java-Themen 4
M Zugriff zweier Threads auf diesselbe Methode Allgemeine Java-Themen 16
B Zugriff auf eine HashMap Allgemeine Java-Themen 4
B JApplet Zugriff auf Local Storage des Browser? Allgemeine Java-Themen 2
D Zugriff auf Array-Liste Allgemeine Java-Themen 19
M gleichzeitiger Zugriff auf eine Textdatei Allgemeine Java-Themen 6
D Eclipse Kein Zugriff auf Inhalt einer referenzierten .jar Allgemeine Java-Themen 5
B synchronisierter zugriff auf Objekt Allgemeine Java-Themen 6
nutellastulle Zugriff, Übergabe, Bearbeitung und Ausgabe von Jlist Allgemeine Java-Themen 6
U Große Liste von Strings mit indiziertem Zugriff Allgemeine Java-Themen 31
J XML Element Zugriff Allgemeine Java-Themen 4
P Daten kopieren mit nio - Zugriff verweigert Allgemeine Java-Themen 8
A Input/Output Applet-Zugriff auf PHP-Schnittstelle (externer Server) Allgemeine Java-Themen 22
H Vererbung Abgeleitete Klassen und Zugriff Allgemeine Java-Themen 2
C Probleme mit dem Zugriff auf private Methode per reflection Allgemeine Java-Themen 2
J Zugriff auf Poker-Client Fenster Allgemeine Java-Themen 14
C Zugriff auf private Methode per reflection geht nicht mehr Allgemeine Java-Themen 3
D Kein Zugriff auf WebService ausser localhost Allgemeine Java-Themen 4
Sonecc Zugriff auf Class File einer anderen Jar während der Laufzeit Allgemeine Java-Themen 2
J Zugriff auf Dateien auf einem shared Folder? Allgemeine Java-Themen 3
H Zugriff auf VBA in Java Allgemeine Java-Themen 2
Haave Audio Device Unavailable: Kein gleichzeitiger Zugriff auf Soundsystem möglich Allgemeine Java-Themen 7
G Letzter Zugriff auf Datei Allgemeine Java-Themen 5
C java.io.FileNotFoundException: (Zugriff verweigert) Allgemeine Java-Themen 14
O Zugriff auf Serielle Schnittstelle - Keine Ports gefunden. Allgemeine Java-Themen 8
C Webstart: Zugriff auf lokale Dateien? Allgemeine Java-Themen 2
J Zugriff auf gemeinsame Funktionen Allgemeine Java-Themen 4
Airwolf89 Zugriff auf ArrayList<ArrayList> Allgemeine Java-Themen 3
Airwolf89 Zugriff auf Werte in ArrayList<ArrayList> Allgemeine Java-Themen 4
T Zugriff zwischen Klassen für repaint Allgemeine Java-Themen 7
N Zugriff auf eine Referenzvar. Allgemeine Java-Themen 3
Meldanor Mehrdimensionale Arrays : Zugriff auf n-tes Array Allgemeine Java-Themen 5
E JNA:Zugriff auf Common-Block von Fortran bzw. Struct in C Allgemeine Java-Themen 2
T Zugriff auf Singleton verkürzen - Namespaces?? Allgemeine Java-Themen 20
L Zugriff auf ein Objekt mit mehreren Threads Allgemeine Java-Themen 11
Airwolf89 dynamischer Zugriff auf Variablen/ Objekte Allgemeine Java-Themen 4
S Zugriff auf einzelne Bildpunkte Allgemeine Java-Themen 3
D Referenzen weiterreichen vs. statischer Zugriff Allgemeine Java-Themen 3
V Zugriff auf Default-Package? Allgemeine Java-Themen 6
P RegeEx-Problem: Zugriff auf group Allgemeine Java-Themen 2
M Zugriff auf Parallel-Schnittstelle Allgemeine Java-Themen 2
B Zugriff mit einem Applet auf den Datenträger Allgemeine Java-Themen 11
I Zugriff auf Daten Allgemeine Java-Themen 5
T Zugriff per Reflection o.ä. möglich? Allgemeine Java-Themen 18
D Zugriff auf Windows Dienste Allgemeine Java-Themen 7
G Zugriff auf Memberclasses einer geladenen Class-Datei Allgemeine Java-Themen 2
I Gleichzeitiger zugriff auf ein Long über Threads Allgemeine Java-Themen 2
P Wieso HashMap-Zugriff mit Object, statt mit MyObject? Allgemeine Java-Themen 12
J Kein Zugriff auf Klassen im Default Package Allgemeine Java-Themen 8
M Paralleler Zugriff auf statische Methode Allgemeine Java-Themen 5
S Zugriff auf unterschiedliche JREs Allgemeine Java-Themen 7
M "Unzulässiger Zugriff auf einen Speicherbereich" Allgemeine Java-Themen 7
A Zugriff auf Parallelport nur über Eclipse nicht über .jar ! Allgemeine Java-Themen 12
G Zugriff auf ein sama share Allgemeine Java-Themen 8
J Java zugriff auf Exchange Server Allgemeine Java-Themen 10
D eclipse: Zugriff auf Ordner per code Allgemeine Java-Themen 4
O Konkurrierender Zugriff auf Log-Datei mit Log4J Allgemeine Java-Themen 11
Caracasa [Threads] Gleichzeitiger Zugriff auf eine LinkedList Allgemeine Java-Themen 9
L Zugriff auf Objekt das sich in einer Liste befindet Allgemeine Java-Themen 2
J Zugriff auf den Namen einer Variablen Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben