JFileChooser

DerEisteeTrinker

Bekanntes Mitglied
Also ich seh da jetzt keinen Schuh der drückt. Hau in die Tasten und schrei, wenn es Probleme gibt. Denn das da oben sieht nach nem guten Auftrag aus, so wie ihn der Programmierer vom Kunden kennt <Sarkasmus>Schön spezifiziert und total wasserdicht</Sarkasmus>
 

DBR89

Aktives Mitglied
Also ich seh da jetzt keinen Schuh der drückt. Hau in die Tasten und schrei, wenn es Probleme gibt. Denn das da oben sieht nach nem guten Auftrag aus, so wie ihn der Programmierer vom Kunden kennt <Sarkasmus>Schön spezifiziert und total wasserdicht</Sarkasmus>

:D okay vll ein bisschen Präziser.

Ich bräuchte ein Beispiel wie ich den JFileChooser in folgendes Szenario einbauen kann(Im Projekt verwenden kann)
Hier mal eine Entwurfsvorlage:
entwurfl.png


Bei klick auf Input File/Output File Name öffnet sich das Dateiauswahlfenster.

Die Auswahl soll als String übergeben werden. Ist das Möglich?

Gruß
 
Zuletzt bearbeitet:
S

SlaterB

Gast
schau dir jedes beliebige Beispiel im Internet an (Suche 'jfilechooser example'),
wie du das in dein Programm einbaust kann dir nicht beigebracht werden

entweder du probierst es und stellst konkrete Fragen oder jemand baut es dir komplett ein..
 

DBR89

Aktives Mitglied
Hier der Entwurf als Code
[Java]
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JTextField;
import java.awt.Rectangle;
import javax.swing.JButton;

public class FileChooserTest extends JFrame {

private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JTextField InputFilenameTextfield = null;
private JTextField OutputFileTextfield = null;
private JButton jButton = null;
private JButton jButton1 = null;
private JButton Generate = null;

/**
* This is the default constructor
*/
public FileChooserTest() {
super();
initialize();
}

/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(661, 248);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}

/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getInputFilenameTextfield(), null);
jContentPane.add(getOutputFileTextfield(), null);
jContentPane.add(getJButton(), null);
jContentPane.add(getJButton1(), null);
jContentPane.add(getGenerate(), null);
}
return jContentPane;
}

/**
* This method initializes InputFilenameTextfield
*
* @return javax.swing.JTextField
*/
private JTextField getInputFilenameTextfield() {
if (InputFilenameTextfield == null) {
InputFilenameTextfield = new JTextField();
InputFilenameTextfield.setBounds(new Rectangle(115, 32, 515, 35));
}
return InputFilenameTextfield;
}

/**
* This method initializes OutputFileTextfield
*
* @return javax.swing.JTextField
*/
private JTextField getOutputFileTextfield() {
if (OutputFileTextfield == null) {
OutputFileTextfield = new JTextField();
OutputFileTextfield.setBounds(new Rectangle(117, 106, 512, 36));
}
return OutputFileTextfield;
}

/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton("Input File");
jButton.setBounds(new Rectangle(8, 27, 100, 39));
}
return jButton;
}

/**
* This method initializes jButton1
*
* @return javax.swing.JButton
*/
private JButton getJButton1() {
if (jButton1 == null) {
jButton1 = new JButton("Output File");
jButton1.setBounds(new Rectangle(6, 105, 102, 36));
}
return jButton1;
}

/**
* This method initializes Generate
*
* @return javax.swing.JButton
*/
private JButton getGenerate() {
if (Generate == null) {
Generate = new JButton("Generate");
Generate.setBounds(new Rectangle(494, 167, 129, 38));
}
return Generate;
}

} // @jve:decl-index=0:visual-constraint="40,17"

[/code]

Danke für den Tipp, habe test mit dieser Seite gemacht JFileChooser, habe aber kein verwertbares Ergebnis bekommen:
Problem mit
Java:
 chooser.addChoosableFileFilter(new FileFilter() {
    public boolean accept(File f) {
      if (f.isDirectory()) return true;

Zurück zum Entwurf: Die Buttons statte ich mit einem actionPerformed aus in dem dann der Dateidialog geöffnet wird oder?

---------------Edit------------------

Datei Explorer öffnet sich

Java:
public void actionPerformed(java.awt.event.ActionEvent e) {
        if (e.getSource() == jButton) {
        int returnVal = fc.showOpenDialog(FileChooserTest.this);
                if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = fc.getSelectedFile();
                        //This is where a real application would open the file.
                        //        InputFilenameTextfield.append(file.getName());
                } else {
                        //     	InputFilenameTextfield.append("Open command cancelled by user.");
					        }
					 }
				}
Wie bekomme ich jetzt den Datenpfad in mein Textfeld?
 
Zuletzt bearbeitet:
S

SlaterB

Gast
> Wie bekomme ich jetzt den Datenpfad in mein Textfeld?

schau dir an was file an Methoden liefert, etwa getAbsolutePath(),

und das in das Textfeld schreiben, ein komplett separates Problem,
im Idealfall variable.setText(), ansonsten kann man daraus für sich lange Probleme stricken..
 

DBR89

Aktives Mitglied
> Wie bekomme ich jetzt den Datenpfad in mein Textfeld?

schau dir an was file an Methoden liefert, etwa getAbsolutePath(),

und das in das Textfeld schreiben, ein komplett separates Problem,
im Idealfall variable.setText(), ansonsten kann man daraus für sich lange Probleme stricken..

Funktioniert einwandfrei! Vielen Dank für die schnelle Hilfe ;)

Wenn ich es fertig habe werde ich dem Konverter online stellen.
 

DBR89

Aktives Mitglied
Hi Leute,

ich stecke gerade in einer Sackgasse... -.-

Ich habe jetzt einen Funktionierenden Filechooser
Java:
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JTextField;
import java.awt.Rectangle;
import javax.swing.JButton;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.filechooser.*;

public class FileChooserTest extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JTextField InputFileTextfield = null;
	private JTextField OutputFileTextfield = null;
	private JButton jButton = null;
	private JButton jButton1 = null;
	private JButton Generate = null;
	translator t = new translator();  //  @jve:decl-index=0:
	

	/**
	 * This is the default constructor
	 */
	public FileChooserTest() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		fc.setSize(new Dimension(557, 336));
		this.setSize(661, 248);
		this.setContentPane(getJContentPane());
		this.setTitle("JFrame");
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getInputFileTextfield(), null);
			jContentPane.add(getOutputFileTextfield(), null);
			jContentPane.add(getJButton(), null);
			jContentPane.add(getJButton1(), null);
			jContentPane.add(getGenerate(), null);
		}
		return jContentPane;
	}

	/**
	 * This method initializes InputFilenameTextfield	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getInputFileTextfield() {
		if (InputFileTextfield == null) {
			InputFileTextfield = new JTextField();
			InputFileTextfield.setBounds(new Rectangle(115, 32, 515, 35));
		}
		return InputFileTextfield;
	}

	/**
	 * This method initializes OutputFileTextfield	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getOutputFileTextfield() {
		if (OutputFileTextfield == null) {
			OutputFileTextfield = new JTextField();
			OutputFileTextfield.setBounds(new Rectangle(117, 106, 512, 36));
		}
		return OutputFileTextfield;
	}

	/**
	 * This method initializes jButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	JFileChooser fc = new JFileChooser();  //  @jve:decl-index=0:visual-constraint="90,288"

	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton("Input File");
			jButton.setBounds(new Rectangle(8, 27, 100, 39));
			jButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					 if (e.getSource() == jButton) {
					        int returnVal = fc.showOpenDialog(FileChooserTest.this);

					        if (returnVal == JFileChooser.APPROVE_OPTION) {
					            File file = fc.getSelectedFile();
					            InputFileTextfield.setText(file.getAbsolutePath());
					            t.setInputFilename(InputFileTextfield.getText());
					        }
					 }
				}
			});
		}
		return jButton;
	}

	/**
	 * This method initializes jButton1	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton1() {
		if (jButton1 == null) {
			jButton1 = new JButton("Output File");
			jButton1.setBounds(new Rectangle(6, 105, 102, 36));
			jButton1.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
						 if (e.getSource() == jButton1) {
						        int returnVal = fc.showOpenDialog(FileChooserTest.this);

						        if (returnVal == JFileChooser.APPROVE_OPTION) {
						            File file = fc.getSelectedFile();
						            OutputFileTextfield.setText(file.getAbsolutePath());
						            t.setOutputFilename(OutputFileTextfield.getText());
						        }
						 }
					}
			});
		}
		return jButton1;
	}
	
	public String InputTextField(){
		return InputFileTextfield.getText();
	}
	
	public String OutputTextField(){
		return OutputFileTextfield.getText();
	}
	

	/**
	 * This method initializes Generate	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getGenerate() {
		if (Generate == null) {
			Generate = new JButton("Generate");
			Generate.setBounds(new Rectangle(494, 167, 129, 38));
			Generate.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					//???			
				}
			});
			
		}
		return Generate;
	}

}  //  @jve:decl-index=0:visual-constraint="40,17"

Der Funktioniert auch soweit. Jetzt möchte ich nur den String den ich hier raus bekomme in meine Klasse Translator übergeben, die eine Umrechnung einer CSV Datei zu einer XML Datei macht.
Ich bekomme dabei 2 Fehler geworfen:
1.
Java:
IWAV0048I Java Bean translator started with null constructor
2.
Java:
 IWAV0052E Invocation Target Exception creating translator
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at org.eclipse.ve.internal.java.vce.launcher.remotevm.JavaBeansLauncher.main(JavaBeansLauncher.java:86)
Caused by: java.lang.NullPointerException
	at translator.translator(translator.java:54)
	at translator.<init>(translator.java:74)
	... 5 more
So und hier mal der Translator Java Code. Für eure Hilfe wäre ich echt sau dankbar, ich komme nämlich nicht weiter :(

Java:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.sax.TransformerHandler;
import javax.xml.transform.stream.StreamResult;

import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;


public class translator {
	private String Inputfile;
	private String Outputfile;

	public void setInputFilename(String s){
		Inputfile = s;
		
	}
	
	public void setOutputFilename(String s){
		Outputfile = s;
		
	}
	
	public List<String> translator() {
        
        // Einlesen des Files und spliten
        FileReader myFile = null;
        BufferedReader buff = null;
        final List<String> lines = new ArrayList<String>();
     
        try {
            myFile = new FileReader(Inputfile);
        	buff = new BufferedReader(myFile);
            String line;
            while ((line = buff.readLine()) != null) {
               // System.out.println(line); // kontrolle was eingelesen
     
                lines.add(line);
            }
        } catch (IOException e) {
            System.err.println("Error2 :" + e);
        } finally {
            try {
                buff.close();
                myFile.close();
            } catch (IOException e) {
                System.err.println("Error2 :" + e);
            }
        }
     
        final String[][] valuesArray = new String[lines.size()][];
        int cnt = 0;
        for (final String line : lines) {
            valuesArray[cnt++] = line.split(",");
        }
        return lines;
	}
        

	//Umwandeln der Liste in GPX(XML) Code
        private StreamResult out;
        private TransformerHandler th;
        private AttributesImpl atts;
        List<String> list = translator();

        
     
        public translator() {
            try {
                out = new StreamResult(Outputfile);
            	initXML();
                for (String str : list) {
                    process(str);
                }
                closeXML();
            } catch (TransformerConfigurationException ex) {
                Logger.getLogger(translator.class.getName()).log(Level.SEVERE, null, ex);
            } catch (SAXException ex) {
                Logger.getLogger(translator.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
     
        private void initXML() throws TransformerConfigurationException, SAXException {
            SAXTransformerFactory tf = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
            th = tf.newTransformerHandler();
            Transformer serializer = th.getTransformer();
            serializer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
            // pretty XML output:
            serializer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
            serializer.setOutputProperty(OutputKeys.INDENT, "yes");
            th.setResult(out);
            th.startDocument();
            atts = new AttributesImpl();
            th.startElement("", "", "gpx", atts);
        }
     
        private void process(final String s) throws SAXException {
            String[] elements = s.split(";");
            atts.clear();
            atts.addAttribute("", "", "lat", "", "" + elements[3]);
            atts.addAttribute("", "", "lon", "", "" + elements[4]);
            th.startElement("", "", "wpt", atts);
            atts.clear();
            th.startElement("", "", "name", atts);
            String name = "Cell-ID: " + elements[2];
            th.characters(name.toCharArray(), 0, name.length());
            th.endElement("", "", "name");
            th.startElement("", "", "cmt", atts);
            th.characters(elements[0].toCharArray(), 0, elements[0].length());
            th.endElement("", "", "cmt");
            th.startElement("", "", "desc", atts);
            String desc = "Standortname: " + elements[1] + "\r\n"+ "Netztyp: " + elements[0] + "\r\n" + "Releasecause: " + elements[5] + " Anzahl: " + elements[6];
            th.characters(desc.toCharArray(), 0, desc.length());
            th.endElement("", "", "desc");
            th.endElement("", "", "wpt");
        }
     
        private void closeXML() throws SAXException {
            th.endElement("", "", "gpx");
            th.endDocument();
        }
        
        public void start() {
            translator	toXML = new translator();
        }
}
 
S

SlaterB

Gast
wahrscheinlich gab es in translator.translator() in der Zeile
> myFile = new FileReader(Inputfile);
einen Fehler, deswegen ist buff null und im finally kommt die Exception, frage dort buff != null ab, bei myFile genauso

erhälst du eine Ausgabe '"Error2 :"? vielleicht erst besser zu sehen wenn du die andere Exception ausbaust

-----

ansonsten ist der Ablauf nicht ganz klar,
dein schlimmes Code-Niveau trägt dazu bei, Klassen groß schreiben!, Methoden + Variablen klein,
keine Methoden wie Klassen bzw. Konstruktoren benennen,
[c]public List<String> translator()[/c] in einer Klasse [c]translator[/c] geht absolut nicht, das muss
[c]public List<String> readLinesFromFile()[/c] in einer Klasse [c]Translator[/c] heißen oder ähnlich besser

----

sehr schlecht ist auch, dass du
> translator t = new translator();
direkt in der Klasse FileChooserTest stehen hast,
schreibe die Objekterzeugung in irgendeine Methode wie initialize() von FileChooserTest ,
damit ein wenig Kontrolle besteht wann was geschieht

und bedenke:
derzeit steht direkt im Konstruktor von translator
> out = new StreamResult(Outputfile);

dieses Outputfile ist aber anfangs null, soll erst von einer set-Methode gesetzt werden,
wie soll das passieren noch vor dem Konstruktor-Aufruf?

die ganze Verknüpfung von erzeugten Objekten und Konstruktoren die eine Menge machen, bedeutet derzeit,
dass direkt beim Erstellen eines FileChooserTest-Objektes bereits
> out = new StreamResult(Outputfile);
ausgeführt wird

----

allgemein:
immer ganz ruhig einen Schritt nach dem anderen programmieren und den Überblick behalten wann was wo warum passiert,
am Anfang ist ein Programm leer, macht gar nichts, das ist der Idealzustand,
nur nach und nach Dinge einbauen, Konstruktoren möglichst leer halten und nur kontrolliert dann Dinge ausführen wenn sie auch angebracht sind

'Konstruktoren möglichst leer halten' heißt übrigens nicht, vom Konstruktor nur eine Methode aufzurufen, in der alles drin steht, dann wird trotzdem eine Menge ausgeführt,
ein leerer Konstruktor macht wirklich wenig bis gar nichts, der Aufrufer würde die nächste Aktion starten:

X x = new X();
x.initialize();
 
Zuletzt bearbeitet von einem Moderator:

DBR89

Aktives Mitglied
>wahrscheinlich gab es in translator.translator() in der Zeile
> myFile = new FileReader(Inputfile);
>einen Fehler, deswegen ist buff null und im finally kommt die Exception, frage dort buff != null ab, bei >myFile genauso

Genau das ist das Problem, der String == null...

-----

>ansonsten ist der Ablauf nicht ganz klar,
>dein schlimmes Code-Niveau trägt dazu bei, Klassen groß schreiben!, Methoden + Variablen klein,
>keine Methoden wie Klassen bzw. Konstruktoren benennen,
>[c]public List<String> translator()[/c] in einer Klasse [c]translator[/c] geht absolut nicht, das muss
>[c]public List<String> readLinesFromFile()[/c] in einer Klasse [c]Translator[/c] heißen oder ähnlich >besser
habe ich geändert, zu meiner Entschuldigung ist zu sagen das ich da wild rumprobiert habe, trotzdem hast du Recht, dass es die Hilfe erschwert...
----

>sehr schlecht ist auch, dass du
> translator t = new translator();
>direkt in der Klasse FileChooserTest stehen hast,
>schreibe die Objekterzeugung in irgendeine Methode wie initialize() von FileChooserTest ,
>damit ein wenig Kontrolle besteht wann was geschieht
Problem hierbei: Ich bekomme Fehler angezeigt: t.setInputFilename(InputFileTextfield.getText()); und t.setOutputFilename(OutputFileTextfield.getText()); werden nicht mehr erkannt...

>und bedenke:
>derzeit steht direkt im Konstruktor von translator
> out = new StreamResult(Outputfile);

>dieses Outputfile ist aber anfangs null, soll erst von einer set-Methode gesetzt werden,
>wie soll das passieren noch vor dem Konstruktor-Aufruf?

>die ganze Verknüpfung von erzeugten Objekten und Konstruktoren die eine Menge machen, bedeutet >derzeit,
>dass direkt beim Erstellen eines FileChooserTest-Objektes bereits
> out = new StreamResult(Outputfile);
>ausgeführt wird
Ich habe den Konstruktor geleert, ich habe statt des Konstruktors nun eine Klasse translate() die die Aufgaben übernimmt. Im Konstruktor steht nun nichts mehr.

Nur wie bekomme ich den Fehler da raus?

Hier die neue Translator Klasse:
Java:
public class Translator {
	private String Inputfile;
	private String Outputfile;
    private StreamResult out;
    private TransformerHandler th;
    private AttributesImpl atts;
    List<String> list = einlesen();

    public Translator(){
    	
    }
	public void setInputFilename(String s){
		Inputfile = s;
		
	}
	
	public void setOutputFilename(String s){
		Outputfile = s;
		
	}
	
	public List<String> einlesen() {
        
        // Einlesen des Files und spliten
        FileReader myFile = null;
        BufferedReader buff = null;
        final List<String> lines = new ArrayList<String>();
     
        try {
            myFile = new FileReader(Inputfile);
        	buff = new BufferedReader(myFile);
            String line;
            while ((line = buff.readLine()) != null) {
               // System.out.println(line); // kontrolle was eingelesen
     
                lines.add(line);
            }
        } catch (IOException e) {
            System.err.println("Error2 :" + e);
        } finally {
            try {
                buff.close();
                myFile.close();
            } catch (IOException e) {
                System.err.println("Error2 :" + e);
            }
        }
     
        final String[][] valuesArray = new String[lines.size()][];
        int cnt = 0;
        for (final String line : lines) {
            valuesArray[cnt++] = line.split(",");
        }
        return lines;
	}
        

	//Umwandeln der Liste in GPX(XML) Code
     
        public void translate() {
            try {
                out = new StreamResult(Outputfile);
            	initXML();
                for (String str : list) {
                    process(str);
                }
                closeXML();
            } catch (TransformerConfigurationException ex) {
                Logger.getLogger(Translator.class.getName()).log(Level.SEVERE, null, ex);
            } catch (SAXException ex) {
                Logger.getLogger(Translator.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
     
        private void initXML() throws TransformerConfigurationException, SAXException {
            SAXTransformerFactory tf = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
            th = tf.newTransformerHandler();
            Transformer serializer = th.getTransformer();
            serializer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
            // pretty XML output:
            serializer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
            serializer.setOutputProperty(OutputKeys.INDENT, "yes");
            th.setResult(out);
            th.startDocument();
            atts = new AttributesImpl();
            th.startElement("", "", "gpx", atts);
        }
     
        private void process(final String s) throws SAXException {
            String[] elements = s.split(";");
            atts.clear();
            atts.addAttribute("", "", "lat", "", "" + elements[3]);
            atts.addAttribute("", "", "lon", "", "" + elements[4]);
            th.startElement("", "", "wpt", atts);
            atts.clear();
            th.startElement("", "", "name", atts);
            String name = "Cell-ID: " + elements[2];
            th.characters(name.toCharArray(), 0, name.length());
            th.endElement("", "", "name");
            th.startElement("", "", "cmt", atts);
            th.characters(elements[0].toCharArray(), 0, elements[0].length());
            th.endElement("", "", "cmt");
            th.startElement("", "", "desc", atts);
            String desc = "Standortname: " + elements[1] + "\r\n"+ "Netztyp: " + elements[0] + "\r\n" + "Releasecause: " + elements[5] + " Anzahl: " + elements[6];
            th.characters(desc.toCharArray(), 0, desc.length());
            th.endElement("", "", "desc");
            th.endElement("", "", "wpt");
        }
     
        private void closeXML() throws SAXException {
            th.endElement("", "", "gpx");
            th.endDocument();
        }
 
S

SlaterB

Gast
um welchen Fehler geht es denn aktuell?
dass
> t.setInputFilename(InputFileTextfield.getText());
nicht funktioniert?

das kann man für sich nicht beantworten, wo steht diese Zeile, in welcher Klasse in welcher Methode,
ist t da ordentlich definiert?,
funktioniert der Zugriff auf andere Attribute wie 'jButton'?

auf Felder wie InputFileTextfield in FileChooserTest solltest du übrigens sowieso nicht direkt zugreifen,
das ist anfangs null, wird in der get-Methode initialisiert wenn nicht vorhanden,
auch wenn es bis zu deinem Problemcode vielleicht schon initialisiert ist, ist es bei solchen Konstruktoren sauberer, nur die get-Methode zu verwenden, nicht das Attribut direkt anzusprechen


----

die Klasse Translator sieht gut aufgeräumt aus,
hatte meine Zweifel dass meine Vorschläge dazu direkt verständlich sind
 

DBR89

Aktives Mitglied
Ich habe immer noch 2 Fehler:

der 1. ist:
Code:
IWAV0048I Java Bean Translator started with null constructor

und der 2.
Code:
IWAV0052E Invocation Target Exception creating Translator
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at org.eclipse.ve.internal.java.vce.launcher.remotevm.JavaBeansLauncher.main(JavaBeansLauncher.java:86)
Caused by: java.lang.NullPointerException
	at Translator.einlesen(Translator.java:61)
	at Translator.<init>(Translator.java:26)
	... 5 more

Ich dachte, dass würde mit dem Konstruktor zusammenhängen, aber anscheinende nicht, denn der Konstruktor ist jetzt leer. D.h. er dürfte die Funktion garnicht aufrufen...
 
S

SlaterB

Gast
das sind weiterhin ungewöhnliche Fehler,

die erste Aufgabe wäre herauszufinden, WO sie auftreten,
verwende mehr try/catches, baue notfalls zwischen jedem einzelnen normalen Java-Befehl ein System.out.println()

wo wird der Translator erstellt?
kommentiere das aus, kein Fehler?
als nächstes

Java:
System.out.println("vor T");
Translator t = new Translator();
System.out.println("T erstellt: "t);
und nix weiter in der Richtung machen,
kommen die beiden Ausgaben und keine Fehler?
dann als nächstes das machen was du machen musst usw, Code auskommentieren, Kommentare einbauen, alles mögliche,

---

ich sehe jetzt aber doch noch ein Problem:
Java:
public class Translator {
    private String Inputfile;
    private String Outputfile;
    private StreamResult out;
    private TransformerHandler th;
    private AttributesImpl atts;
    List<String> list = einlesen();
hier wird einlesen() immer noch direkt bei Objekterzeugung, also wie im Konstruktor ausgeführt,
auf sowas unbedingt verzichten, hatte ich vorher übersehen, schreibe nur
Java:
   private List<String> list;
oder was auch immer,
einlesen() soll bestimmt erst dann ausgeführt werden, wenn dafür die Zeit gekommen ist,
gleiches Problem wie oben schon
 

DBR89

Aktives Mitglied
Wenn man sich so an ein paar Grundprinzipien der Programmierichtlinien hält, hat man es doch wirklich leichter.

Slater B fielen Dank für deine wirklich sehr kompetente Hilfe!

Die ratschläge haben mich echt weiter gebracht.
 

DBR89

Aktives Mitglied
Eine Frage habe ich noch: Ich würde gerne im Auswahlmenü für Inputfiles gerne nur CSV Dateien sehen und im Outputfile nur gpx. Nur wie funktionieren die Filter?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Probleme mit Zugriff auf Dateisystem Windows 10 ( jFileChooser) Java Basics - Anfänger-Themen 17
M Interface JFileChooser vergrößern Java Basics - Anfänger-Themen 4
V Mehrere Dateien aus JFileChooser in eine ArrayList speichern Java Basics - Anfänger-Themen 2
O JFileChooser Verhalten -Pfad Java Basics - Anfänger-Themen 15
B JFileChooser und JList Java Basics - Anfänger-Themen 7
D Datei mit JFileChooser erstellen Java Basics - Anfänger-Themen 5
M Umgebungsvariable JFileChooser#setCurrentDirectory via Properties setzen? Java Basics - Anfänger-Themen 5
M JFileChooser Ordner auswählen Java Basics - Anfänger-Themen 5
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
B JUnit für JFileChooser Java Basics - Anfänger-Themen 6
B FileWriter und JFileChooser zusammenfügen Java Basics - Anfänger-Themen 3
B Methoden JFileChooser und sein "Startverzeichnis" Java Basics - Anfänger-Themen 3
D JFileChooser & FileReader Java Basics - Anfänger-Themen 4
CR7 JFileChooser DateiÖffnen Java Basics - Anfänger-Themen 7
G JFileChooser "alle Dateien" unterbinden Java Basics - Anfänger-Themen 3
K Methoden JFileChooser Dateipfadübergabe Java Basics - Anfänger-Themen 5
S Wechselmedien in JFileChooser Java Basics - Anfänger-Themen 4
H speichern unter (JFileChooser) Java Basics - Anfänger-Themen 2
H JFileChooser... dateispeicherpfad selbst aussuchen Java Basics - Anfänger-Themen 4
M Bild aus URL via JFileChooser speichern Java Basics - Anfänger-Themen 10
D JFileChooser gewählte Datei "verwenden" Java Basics - Anfänger-Themen 2
I Probleme mit jFileChooser Java Basics - Anfänger-Themen 2
c_sidi90 Jfilechooser Problem Dateinamefeld Java Basics - Anfänger-Themen 11
S JFileChooser - Dateinamen vorschlagen/Inhalt der Ausgabe prüfen Java Basics - Anfänger-Themen 3
Z JFileChooser/ Panel + Menüproblem Java Basics - Anfänger-Themen 3
Z CSV-Datei einlesen mit dem JFileChooser !!! Java Basics - Anfänger-Themen 5
A JFileChooser - ungefragtes überschreiben Java Basics - Anfänger-Themen 12
I (JFileChooser)Wie kann eine Jar auf Dateien eines bestimmten Ordners zugreifen? Java Basics - Anfänger-Themen 9
W JFileChooser - Eingebbare Zeichen begrenzen Java Basics - Anfänger-Themen 3
T Standardordner für JFileChooser festlegen Java Basics - Anfänger-Themen 2
R jFileChooser aus main- Programm aufrufen Java Basics - Anfänger-Themen 3
G Mehrere Dateien mit JFilechooser auswählen und öffnen. Java Basics - Anfänger-Themen 6
B Wie Dateitypauswahl in JFileChooser Opendialog begrenzen? Java Basics - Anfänger-Themen 2
M JFileChooser Dateityp vorbelgen Java Basics - Anfänger-Themen 3
G Mit jFileChooser Pfad rauskriegen? Java Basics - Anfänger-Themen 3
A JFileChooser soll sich letzten ordner merken Java Basics - Anfänger-Themen 4
D Vorschau bei jfilechooser? Java Basics - Anfänger-Themen 3
G JFileChooser - Change Icon Problem! Java Basics - Anfänger-Themen 2
J Wait_Cursor beim JFileChooser? Java Basics - Anfänger-Themen 8
G JFileChooser übergabe an Directory Java Basics - Anfänger-Themen 4
X JFileChooser Auswahl Java Basics - Anfänger-Themen 4
A JFileChooser DefaultDirectorie Java Basics - Anfänger-Themen 7
G jFileChooser speichern + Fehlermeldung Java Basics - Anfänger-Themen 10
S JFileChooser konfigurieren Java Basics - Anfänger-Themen 6
M JFileChooser, Nur im C:Programme Java Basics - Anfänger-Themen 5
A JFileChooser Darstellung Java Basics - Anfänger-Themen 3
G jFileChooser auf den Abbrechen-Button reagieren Java Basics - Anfänger-Themen 3
R JFileChooser hängt java Programm auf Java Basics - Anfänger-Themen 6
S JFileChooser öffnet Unterverzeichnisse sehr langsam Java Basics - Anfänger-Themen 2
O JFileChooser Filter an Dateinamen hängen Java Basics - Anfänger-Themen 4
G speichern mit JFileChooser Java Basics - Anfänger-Themen 2
G jFileChooser Java Basics - Anfänger-Themen 8
G JFileChooser - Anzeige beschleunigen Java Basics - Anfänger-Themen 2
G JFileChooser kommt doppelt Java Basics - Anfänger-Themen 3
2 JFileChooser- Dateien nur als bestimmte Formate speichern Java Basics - Anfänger-Themen 4
E JFileChooser -> Verzeichnis setzen Java Basics - Anfänger-Themen 10
E JFileChooser- Dateiname Feld? Java Basics - Anfänger-Themen 2
B JFileChooser problem Java Basics - Anfänger-Themen 3
N immer als *.xml speichern (jfilechooser) Java Basics - Anfänger-Themen 2
P Problem mit JFileChooser und FileFilter Java Basics - Anfänger-Themen 8
D Pfad-Auswahl mit dem JFileChooser Java Basics - Anfänger-Themen 8
H JFileChooser Problem Java Basics - Anfänger-Themen 3
B JFileChooser Abfrage für Datei speichern Java Basics - Anfänger-Themen 3
G Jfilechooser ordner auswählen? Java Basics - Anfänger-Themen 2
D JFileChooser Darstellung ändern? Java Basics - Anfänger-Themen 4
G JFileChooser EventListener auf Öffnen Button Java Basics - Anfänger-Themen 3
J NetBeans und JFileChooser Java Basics - Anfänger-Themen 4
M JFileChooser Überschreiben Dialog? Java Basics - Anfänger-Themen 2
M JFileChooser - Dateiendung vorgeben? Java Basics - Anfänger-Themen 13
G JFileChooser - Datei speichern Java Basics - Anfänger-Themen 9
P JFileChooser soll nur .txt files anzeigen Java Basics - Anfänger-Themen 5
P JFileChooser: Methode: setCurrentDirectoy (File Dir) gehtNet Java Basics - Anfänger-Themen 2
F JFileChooser Java Basics - Anfänger-Themen 33
S BufferedReader (JFileChooser) Java Basics - Anfänger-Themen 2
H JFileChooser - FileFilter Java Basics - Anfänger-Themen 2
T neue Instanz von JFileChooser => applikation friert ein Java Basics - Anfänger-Themen 2
B JFileChooser <-> FileDialog Java Basics - Anfänger-Themen 4
S FileDialog/ JFileChooser, Bilder laden, Dateifilter, Diashow Java Basics - Anfänger-Themen 8
B JFileChooser für Files and Directories Java Basics - Anfänger-Themen 3
S Probleme mit JFileChooser! Java Basics - Anfänger-Themen 4
M JFileChooser Directory setzen Java Basics - Anfänger-Themen 6
M JFileChooser Rückgabewert Java Basics - Anfänger-Themen 2
T JFileChooser für Ordner Java Basics - Anfänger-Themen 7
S Größe einer Datei, JFileChooser Java Basics - Anfänger-Themen 5
G Frage zum jFileChooser.showSaveDialog Java Basics - Anfänger-Themen 2
J JFileChooser Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben