Hallo,
leider beschäftige ich mich seit 2 Tagen die ganze Zeit mit einem Problem. Ich komme nur leiter nicht weiter.
Ich habe einen JFrame in dem ein JPanel liegt. Wenn ich in dem Menü meines JFrames etwas ändere muss das zum Panel übermittelt werden. Dazu wäre eine aktualiserung/neu laden des Panels erforderlich da dieses einmalig beim Start des Jframes erzeugt wird.
In diesem Beispiel will ich eine Speicherpfadänderung für eine Datei, die ich im JFrame Menü ausführe, einfach an meinen JPanel übergeben und in dessen Funktion "private void TransformationButtonActionPerformed" ausgeben.
Dieses sind meine ersten Schritte in Jpanel und ich hoffe ihr könnt mir dabei helfen...Hier mein quellcode der beiden Funktionen
:
leider beschäftige ich mich seit 2 Tagen die ganze Zeit mit einem Problem. Ich komme nur leiter nicht weiter.
Ich habe einen JFrame in dem ein JPanel liegt. Wenn ich in dem Menü meines JFrames etwas ändere muss das zum Panel übermittelt werden. Dazu wäre eine aktualiserung/neu laden des Panels erforderlich da dieses einmalig beim Start des Jframes erzeugt wird.
In diesem Beispiel will ich eine Speicherpfadänderung für eine Datei, die ich im JFrame Menü ausführe, einfach an meinen JPanel übergeben und in dessen Funktion "private void TransformationButtonActionPerformed" ausgeben.
Dieses sind meine ersten Schritte in Jpanel und ich hoffe ihr könnt mir dabei helfen...Hier mein quellcode der beiden Funktionen
Java:
class SimpleFrame extends JFrame
{
String savelocation = "C:\\Documents and Settings\\e914\\Desktop\\Testfiles\\";
public SimpleFrame(Document doc)
{
/////////////////////////////////////////////Frame Erzeugung/////////////////////////////////////////////////////////
SimplePanel panel = new SimplePanel(savelocation); //Aktualiserung des JPanals ist nach der Änderung im Menü von jframe erforderlich aber wie?
MenuBar mb = new MenuBar();
setMenuBar(mb);
Menu m = new Menu("Datei");
mb.add(m);
MenuItem neu = new MenuItem("Öffnen");
m.add(neu);
Menu sp = new Menu("Speicherpfad");
mb.add(sp);
MenuItem change = new MenuItem("Ändern");
sp.add(change);
final Container cp = getContentPane();
cp.add(panel);
change.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
savelocation = ChangeButtonActionPerformed(evt);
System.out.println("Speicherpfad neu: "+ savelocation); // Speicherpfad wir hier neu gesetzt aber dem Panel, das zuerst erzeugt wird, nicht mitgeteilt.
}
});
setTitle("Swing-Frame");
setSize(1000, 500);
setLocation(200,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
private String ChangeButtonActionPerformed(java.awt.event.ActionEvent evt)
{
return "c:\\"; //Savelocation in Frame Funktion muss mit diesem wert überschrieben werden
}
}
class SimplePanel extends JPanel
{
JLabel label;
JTable table;
JButton exitButton;
JButton transformation;
public SimplePanel( final String savelocation)
{
setLayout(null);
exitButton = new JButton("Beenden");
add(exitButton);
exitButton.setBounds(835,420,150,30);
exitButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
exitButtonActionPerformed(evt);
}
});
transformation = new JButton ("Tickets erstellen");
add(transformation);
transformation.setBounds(665,420,150,30);
transformation.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
TransformationButtonActionPerformed(evt, savelocation);
}
});
add(label);
}
private void TransformationButtonActionPerformed(java.awt.event.ActionEvent evt, String savelocation)
{
System.out.println("Speicherpfad final: "+ savelocation); // Hier muss der neue Pfad ausgegeben werden.. er nimmt aber immer nur den alten von der ursprünglichen erzeugung
}