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:
2. Klasse bzw. 2. Karteireiter (Tab)
3. Klasse bzw. 3. Karteireiter (Tab)
Fragen:
1.) Wie kann ich von Klasse 2 aus eine Methode von Klasse 1 aufrufen ? z.B. die Methode
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:
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();
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: