Befehl funktioniert in Eclipse allerdings nicht in einer Jar-Datei

Grimnir

Mitglied
Hallo,
ich habe eine Problem mit dem Befehl

disableTextComponent(parent, boolean); .

Dieser macht in meiner Programmierumgebung Eclipse was er soll, des Eingabefeld des JFilechoosers inaktiv setzen.
Sobald ich das Programm als Jar exportiere funktioniert im Grunde alles wie es soll, nur ist dieses Feld wieder aktiv. Java Version ist 1.6 wurde aber auch schon mit anderen getestet.

Für Hilfe bin ich dankbar

Gruß Grimnir
 
Schon mit Logausgaben getestet ob der Code ausgeführt wird bzw. mit welchen Wert?

Ohne Code natürlich schwer zu sagen woran es liegt.
 
Im Eclipse funktioniert ja alles, dementsprechend gibt er auch die Werte korrekt zurück.

Habe auf deinen Hinweis hin die Jar Datei über eine bat gestartet um die Konsolenausgabe lesen zu können.
Über die bat gestartet ist das Eingabefeld wieder inaktiv, funktioniert also, nur normal über die Jar erscheint es wieder aktiv...

kurios

Was ist über die bat oder Umgebung anders?
 
disableTextComponent(parent, boolean);

is ne Methode die ich schon vergessen hab...aua

Trotzdem besteht das Prob.

Hier mal Quelltext:

Java:
import java.awt.Component;
import java.awt.Container;
import java.awt.EventQueue;
import java.io.File;

import javax.swing.JFileChooser;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.filechooser.FileFilter;

public class UntouchFile {

	static void zulageausführung() {

		try {

			JFileChooser fc = new JFileChooser("");
			fc.setDialogTitle("Datei speichern");
			// fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

			fc.setSelectedFile(new File("can´t touch this"));

			disableTextComponent(fc, true);

			fc.setFileFilter(new FileFilter() {
				public boolean accept(File f) {
					return f.getName().toLowerCase().endsWith(".pdf")
							|| f.isDirectory();
				}

				public String getDescription() {
					return "Textdatei(*.pdf)";
				}
			});

			if (fc.showDialog(null, "Speichern") == JFileChooser.CANCEL_OPTION) {

				System.out.println("ich führe was aus");
				return;
			} else {
				// ZulagePDF.pdffile = fc.getSelectedFile();
				// return f.getAbsoluteFile().toString();
				System.out.println("ich führe was aus");
			}

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	/**
	 * 
	 * wird benötigt um in zulageausführung auf Textfeld- Komponenten des
	 * JFilechossers zuzugreifen
	 */

	private static void disableTextComponent(Container parent, boolean hide) {
		Component[] c = parent.getComponents();
		for (int j = 0; j < c.length; j++) {

			if (unpack(c[j]).equals("WindowsFileChooserUI$4")) {
				System.out.println(unpack(c[j]));
				if (hide)
					c[j].setEnabled(false);
			}
			if (((Container) c[j]).getComponentCount() > 0) {
				disableTextComponent((Container) c[j], hide);
			}
		}
	}

	/**
	 * wird für disableTextComponent,zulageausführung benötigt
	 */
	//
	private static String unpack(Component c) {
		String s = c.getClass().getName();
		int dot = s.lastIndexOf(".");
		if (dot != -1)
			s = s.substring(dot + 1);
		return s;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// zulageausführung();
		/**
		 * look and feel
		 */
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (ClassNotFoundException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (InstantiationException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (IllegalAccessException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (UnsupportedLookAndFeelException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {

					zulageausführung();

				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

}
 
Zuletzt bearbeitet von einem Moderator:

Neue Themen


Zurück
Oben