da ich noch relativ am Anfang mit Java stehe muss ich leider eure Zeit in Anspruch nehmen und meinen ersten Post hier mit einer für mich nervigen Situation starten.
Ich bin derzeit Dabei ein Programm zu schreiben, womit ich Bilder umbenenne und gleichzeit in einer .dbf Datei den zugehörigen Eintrag zu ersetzen. Soweit so gut. Die Bestandteile funktionieren aber derzeit nur per CMD.
Jetzt bin ich dabei eine Grafische Benutzeroberfläche einzubinden aber bin an dem Punkt angelangt wo meine newbie Skills ausgereizt sind. Ich habe eine Klasse erstellt die einen extends auf JFrame ist worin ich dann eventlistener und sowas benutze. Das funktioniert auch noch nur hab ich jetzt das Problem das ich die Ausgelesenen Pfadangaben und Dateinamen nicht an meine Funktion übergeben kann die wiederrum meine Renamefunktion, Filebackup und sowas aufruft. ;(
Der Aufruf sieht wie folgt aus:
Code:
public class UI {
public static void main(String[] args) throws Exception{
Listener nml = new Listener();
nml.setVisible(true);
Writer.call(nml.path, nml.name, nml.bildpath, "Kahla",false);
}
}
Wenn noch mehr quellcode notwendig wäre reich ich das nach da ich glaub vorerst genug zum lesen erstellt habe
So danke schonmal für den Grundlegende Tip. Habs direkt mal umbenannt.
Da im test der Klasse, die ich jetzt Mainwindow genannt hab, alles an Werten zugewiesen wird wie es soll scheint es daran nicht zu liegen.
Die Klasse selbst sieht so aus
Code:
public class Mainwindow extends JFrame{
private static final long serialVersionUID = 1L;
JMenuBar menuBar;
JMenu fileMenu;
JMenuItem openItem;
JMenuItem closeItem;
String path;
String name;
String bildpath;
Boolean ter;
public Mainwindow() {
this.setTitle("Faktor-i³ ArcGis Renamer");
this.setSize(500, 350);
getContentPane().setBackground(Color.black);
//this.setUndecorated(true);
menuBar = new JMenuBar();
fileMenu = new JMenu("Datei");
openItem = new JMenuItem("Öffnen");
closeItem = new JMenuItem("Schließen");
fileMenu.add(openItem);
fileMenu.add(closeItem);
menuBar.add(fileMenu);
this.add(menuBar, BorderLayout.NORTH);
openItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
JFileChooser fc = new JFileChooser();
int rueckgabe = fc.showOpenDialog(null);
if(rueckgabe == JFileChooser.APPROVE_OPTION){
path = fc.getSelectedFile().getParent();
System.out.println(path);
name = fc.getSelectedFile().getName();
System.out.println(name);
}
JFileChooser fich = new JFileChooser();
int rueck = fich.showOpenDialog(null);
if(rueck == JFileChooser.APPROVE_OPTION){
bildpath = fich.getSelectedFile().getParent();
System.out.println(bildpath);
}
JOptionPane opt = new JOptionPane();
opt.showInputDialog("Bitte Stadtname eingeben");
}
});
closeItem.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.exit(0);
}
});
}
}
Prinzipiell glaube ich das der aufruf meiner call Funktion nicht wartet und Ohne Wertezuweisung kann sie halt nix anstellen.
Fehler meldung bekomm ich aber auch keine.:rtfm:
Augen auf sollte helfen... das ist der Fehler den ich bekomme.
Exception in thread "main" java.io.FileNotFoundException: null\null (Das System kann den angegebenen Pfad nicht finden)
Hab testweise n sleeptimer eingebaut wodurch mein call gezwungen wird zu warten und wenn ich die werte dann zugewiesen habe gehts auch wie es soll... wie bring ich den jetzt dazu ohne nen festen sleepwert auf die fertige auswahl der dateien zu warten? S:
Du könntest mit Events arbeiten. Wenn die Datei ausgewählt worden ist, wird ein Event ausgelöst und an die Hauptklasse verteilt. In diesem Event ist die Datei und alles Wichtige gespeichert.