GUI auf normalen Explorer

Status
Nicht offen für weitere Antworten.
K

KingArtus

Gast
Hallo kann ich in Java wenn ich eine GUI habe einen Knopf machen, wenn dich darauf klicke öffnet er mir den Normalen explorer ein Spezielles Verzeichnis?

C:/Test/

oder so?
Wäre echt wichtig
 

The_S

Top Contributor
Plattformabhängig geht das. Für Windows z. B.

Code:
Runtime.getRuntime().exec("cmd /c explorer.exe C:/Test");
 

Der Müde Joe

Top Contributor
neu gibts noch die Desktop Klasse
Die kann den nativen FileBrowser des Systems öffnen (bei Verzeichnissen) oder
die Default-Anwendung (bei Files)
http://java.sun.com/javase/6/docs/api/java/awt/Desktop.html#open(java.io.File)
 
G

Guest

Gast
ich würde gern
die Anzahl der PDF aus einem Ordner Anzeigen und wenn ich darauf klicke, dann den Ordner öffnen...

den Java Code zum ermitteln, der PDF und der anzahl habe ich schon :

Code:
import java.io.File;
import java.io.FileFilter;

public class test {
   public static void main(String[] args) {
      try {
         File verzeichnis = new File("C:/"); // Hier muss natürlich dann dein Pfad angegeben werden
         if (verzeichnis.exists()) {
            int iAnzahlPDF = verzeichnis.listFiles(new FileFilter() {
               @Override
               public boolean accept(File pathname) {
                  return pathname.getName().matches(".+\\.(?i)pfd");
               }
            }).length;
            System.out.println("Anzahl PDFs: " + iAnzahlPDF);
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

wir kann ich da nun diesen Knopf generieren?
 

Natorion

Bekanntes Mitglied
Der Müde Joe hat gesagt.:
neu gibts noch die Desktop Klasse
Die kann den nativen FileBrowser des Systems öffnen (bei Verzeichnissen) oder
die Default-Anwendung (bei Files)
http://java.sun.com/javase/6/docs/api/java/awt/Desktop.html#open(java.io.File)

Klingt für mich vernünftig und als Antwort auf deine Frage /batslap
 
G

Guest

Gast
ich möchte dass hier Machen:

Code:
try {
		         File verzeichnis = new File("O:/Barcode Archiv/Geschaeftsjahr 08"); // Hier muss natürlich dann dein Pfad angegeben werden
		         if (verzeichnis.exists()) {
		            int iAnzahlPDF = verzeichnis.listFiles(new FileFilter() { 
		               public boolean accept(File pathname) {
		                  return pathname.getName().matches(".+\\.(?i)pdf");
		               }
		            }).length;
		            // System.out.println(iAnzahlPDF);
		            {
						final JTextPane Plane1 = new JTextPane();
						getContentPane().add(Plane1);
						Plane1.setBounds(0, 213, 122, 31);
						Plane1.setText(iAnzahlPDF);
					}
		         }

nun meckert er mir an: Plane1.setText(iAnzahlPDF)

"int iAnzahlPDF" soll "string" sein, aber dann geht dass wieder nicht
 
G

Gast

Gast
Danke...
hat gut geklappt.. nun noch mal short cutts...

was ist denn daren Falsch?

{
jButton1 = new JButton();
getContentPane().add(jButton1);
jButton1.setText("LOS");
jButton1.setBounds(0, 139, 104, 21);
jButton1.Runtime.getRuntime().exec("cmd /c explorer.exe C:/");
}

die Letzte Zeile aber was genau?
 

Der Müde Joe

Top Contributor
kleines Bsp

Code:
import java.awt.Desktop;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Click extends JFrame {

	public Click() {
		// MS
		// final File file = new File("C:\\");
		// Unix
		final File file = new File("/usr");

		JButton button = new JButton("Click");
		button.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				try {
					Desktop.getDesktop().open(file);
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			}
		});
		getContentPane().add(button);

		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(200, 200);
		setVisible(true);
	}

	public static void main(String[] args) {
		new Click();
	}

}
 
G

Guest

Gast
Code:
package GUI;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JTextPane;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;
import java.io.File;
import java.io.FileFilter;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit [url]www.cloudgarden.com[/url] for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class NewJFrame extends javax.swing.JFrame {

	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel("com.jgoodies.looks.plastic.Plastic3DLookAndFeel");
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

	private JButton jButton1;

	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
				
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				NewJFrame inst = new NewJFrame();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public NewJFrame() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
		         File verzeichnis = new File("O:/Fax_Archiv/Fax_Ausgang_pfd"); // Hier muss natürlich dann dein Pfad angegeben werden
		         if (verzeichnis.exists()) {
		            int iAnzahlPDF = verzeichnis.listFiles(new FileFilter() { 
		               public boolean accept(File pathname) {
		                  return pathname.getName().matches(".+\\.(?i)pdf");
		               }
		            }).length;
		            // System.out.println(iAnzahlPDF);
		           {
						jButton1 = new JButton();
						getContentPane().add(jButton1);
						jButton1.setText(String.valueOf(iAnzahlPDF + " Neue FAXE"));
						jButton1.setBounds(0, 139, 104, 21);
					}
		         }
		      
			
			
			
			
			
			getContentPane().setLayout(null);
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			
			
			pack();
			this.setSize(112, 187);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
 
K

KingArtus

Gast
Also dass von dir Funktioniert zwar...
aber ich bin irgendwie zu Blöd... das was ich will einzubauen...

Also mein Queltext sieht nun so aus:

Code:
package src;
import javax.swing.JButton;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;
import java.io.File;
import java.io.FileFilter;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit [url]www.cloudgarden.com[/url] for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class NewJFrame extends javax.swing.JFrame {

	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

	private JButton jButton1;

	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				NewJFrame inst = new NewJFrame();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public NewJFrame() {
		super();
		initGUI();
	}
	
	private void initGUI() {
	      try {
	               File verzeichnis = new File("C:/"); // Hier muss natürlich dann dein Pfad angegeben werden
	               if (verzeichnis.exists()) {
	                  int iAnzahlPDF = verzeichnis.listFiles(new FileFilter() {
	                     public boolean accept(File pathname) {
	                        return pathname.getName().matches(".+\\.(?i)pdf");
	                     }
	                  }).length;
	                  // System.out.println(iAnzahlPDF);
	                 {
	                  jButton1 = new JButton();
	                  getContentPane().add(jButton1);
	                  jButton1.setText(String.valueOf(iAnzahlPDF + " Neue FAXE"));
	                  jButton1.setBounds(0, 186, 115, 21);
	               }
	               }
	         getContentPane().setLayout(null);
	         setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
	         
	         
	         pack();
	         this.setSize(123, 241);
	      } catch (Exception e) {
	         e.printStackTrace();
	      }
	   }

	}

dies macht mir ein Fenster mit einem Button, in dem die Anzahl der Pdf´s aus dem Ordner angezeigt werden...


nur wenn ich darauf klicke passiert nichts aber er sollte dann in C:/ gehen
 

Der Müde Joe

Top Contributor
ActionListener ?? der auf den Click event reagiert?

(hättest du schon in meinem Beispiel oben sehen können)
Code:
import javax.swing.JButton;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;

import java.awt.Desktop;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;

/**
 * This code was edited or generated using CloudGarden's Jigloo SWT/Swing GUI
 * Builder, which is free for non-commercial use. If Jigloo is being used
 * commercially (ie, by a corporation, company or business for any purpose
 * whatever) then you should purchase a license for each developer using Jigloo.
 * Please visit [url]www.cloudgarden.com[/url] for details. Use of Jigloo implies
 * acceptance of these licensing terms. A COMMERCIAL LICENSE HAS NOT BEEN
 * PURCHASED FOR THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED LEGALLY FOR
 * ANY CORPORATE OR COMMERCIAL PURPOSE.
 */
public class NewJFrame extends javax.swing.JFrame {

	{
		// Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private JButton jButton1;

	/**
	 * Auto-generated main method to display this JFrame
	 */
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				NewJFrame inst = new NewJFrame();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}

	public NewJFrame() {
		super();
		initGUI();
	}

	private void initGUI() {
		try {
			final File verzeichnis = new File("/usr"); // Hier muss natürlich dann dein
												// Pfad angegeben werden
			if (verzeichnis.exists()) {
				int iAnzahlPDF = verzeichnis.listFiles(new FileFilter() {
					public boolean accept(File pathname) {
						return pathname.getName().matches(".+\\.(?i)pdf");
					}
				}).length;
				// System.out.println(iAnzahlPDF);
				
				jButton1 = new JButton();
				jButton1.addActionListener(new ActionListener() {

					@Override
					public void actionPerformed(ActionEvent e) {
						try {
							Desktop.getDesktop().open(verzeichnis);
						} catch (IOException e1) {
							// TODO Auto-generated catch block
							e1.printStackTrace();
						}
						
					}
					
				});
				getContentPane().add(jButton1);
				jButton1.setText(String.valueOf(iAnzahlPDF + " Neue FAXE"));
				jButton1.setBounds(0, 186, 115, 21);

			}
			getContentPane().setLayout(null);
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

			pack();
			this.setSize(123, 241);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

EDIT:

das
jButton1.setText(String.valueOf(iAnzahlPDF + " Neue FAXE"));
geht auch so
jButton1.setText(iAnzahlPDF + " Neue FAXE");
oder
jButton1.setText(String.valueOf(iAnzahlPDF) + " Neue FAXE");
aber beides ins vauleOf ist zuviel des guten
 
G

Guest

Gast
funktioniert echt gut...


eine Kleine frage...

einen Kleinen Butten "+" mit dem man ein Weiteres Verzeichnis und ein Weiteren Butten angit ist relativ schwer zu machen oder?


Also ich will dass man es erweitern kann um weitere Verzeichnisse... man gibt also an "FAXE" und das Verzeichniss "C:/faxe" und der generiwert dann eutomatisiert einen neuen Butten

ist wahrscheinlich noch nichts für mich oder?
ich weiß nichtmal wie ich da ran gehen sollte muss mir mal nen Java Buch kaufen das ist sicher alles zu Kompliziert um dass innerhal der nächsten 60 min selber zu machen oder?
 
K

KingArtus

Gast
ok, werd es mir mal ansehen,

auch wenn dass warscheinlich nicht so viel Bringt *g* ich stell mich beim Programmieren aus irgendwelchen gründen immer verdammt DUMM an
:-(
 

Der Müde Joe

Top Contributor
naja..voll gehackt aber kannst ja mal als Basis nehmen
Code:
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;

public class NewJFrame extends javax.swing.JFrame {

	public static void main(String[] args) {
		new NewJFrame();
	}

	public NewJFrame() {
		init();
	}

	private void init() {
		JButton button = new JButton("+");

		final GridLayout gLayout = new GridLayout(1, 1);
		setLayout(gLayout);

		button.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				JButton b = new JButton("HELL YEAH.");
				gLayout.setRows(gLayout.getRows() + 1);
				getContentPane().add(b);
				validate();
			}

		});
		getContentPane().add(button);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setSize(200, 200);
		setVisible(true);
	}
}

EDIT:
>ich stell mich beim Programmieren aus irgendwelchen gründen immer verdammt DUMM an

Es fehlt dir eher an Erfahrung. Im Swing Berreich kenne ich mich zB auch nicht so gut aus. Für so etwas
wie da oben reichts grad noch mit ohne Doku aber das wars dann auch etwa. ;-)
Aber das kommt mit der Zeit und mit der Erfahrung.
 
K

KingArtus

Gast
Kann man das machen, dass sich dass alle 300 Sekunden automatisch aktualisiert? für den Fall dass neue PDF´s hinzugekommen sind?
 

Der Müde Joe

Top Contributor
Das ist ein heickleres Thema: Threads
kannst dir zb eine Thread machen der testet, dan xx sekunden sleep macht
und dann wieder an die Arbeit geht und das in einer Endlosschleife.

so in etwa:
Code:
		Thread thread = new Thread(new Runnable() {
			@Override
			public void run() {
				while(true) {
					//hole Faxe
					//update GUI
					try {
						Thread.sleep(30 * 1000); //30s
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			}
		});
		thread.start();
 
G

Guest

Gast
Stimmt kann man wirklich als Basis nehmen...

denke ich :)
aber wenn ich dass richtig sehe kopiert er einfach nur ein Butten so oft man will....

dann müsste man den "Main butten" so gestallten dass dieser für sich zu konfigurieren ist.
dann denke ich kann dass gehen...


Leider und ich betone leider, muss ich nun weg weil ich meine Mutter nach Hamburg fahren muss :-( kann also erst morgen Vormittag versuchen weiter zu machen.. ich hoffe ich schaff es dann Morgen

Danke dass du dich meinen Dummen fragen erbarmst :)

KingArtus
 
K

KingArtus

Gast
und in thread.start(); kommt dann der Quellcode?


Also : "thread.start(HIER DER CODE);"

warum Heikles Thema?
 

Der Müde Joe

Top Contributor
nein in die run Methode. thread.start() startet den Thread, welcher dann die run Methode in einem seperaten Thread ausführt.

>warum Heikles Thema?
das ganze zieht einen Ratenschwanz mit sich. Synchronistion und noch viel mehr.
Natürlich auf dieser Stufe noch nicht ;-)

EDIT:
falls du auf Präsentation stehst, das ist immer gut:
http://www.javalobby.org/eps/galbraith-swing-1/
http://www.javalobby.org/eps/galbraith-swing-2/
Geht aber meh rum Swing allgemein nicht um Threads selber
 
G

Guest

Gast
Ok, wenn ich den Knopf, den ich nun habe, so gestallten will, dass man ihn bearbeiten kann, im sinne von, Ordner und angezeigten TEXT, was muss ich dann machen?

Hab echt Keinen Schimmer

KingArus
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P [B@6a435f in normalen Zahlen umwandeln, wie? Java Basics - Anfänger-Themen 14
L RandomAcessFile getFilePointer in normalen FileReader Java Basics - Anfänger-Themen 4
J IDE auf normalen USB Stick Java Basics - Anfänger-Themen 7
M normalen Integer in Binärzahl umwandeln Java Basics - Anfänger-Themen 2
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
M Java GUI explorer aufrufen um Pfad zu bekommen Java Basics - Anfänger-Themen 3
T Compiler-Fehler Eclipse: leerer Package Explorer Java Basics - Anfänger-Themen 4
MR._FIRE_Flower Ordner im Explorer öffnen lassen Java Basics - Anfänger-Themen 2
E java mit Internet Explorer 11 Java Basics - Anfänger-Themen 8
M Explorer oeffnen mittels java.awt.Desktop Java Basics - Anfänger-Themen 18
K Kommunizieren mit Firefox/IE-Explorer Java Basics - Anfänger-Themen 14
J Window 7 Problem mit Runtime.getRuntime().exec("explorer") Java Basics - Anfänger-Themen 4
Developer_X Mein erster Internet Explorer Java Basics - Anfänger-Themen 14
A eigener Explorer via Java? Java Basics - Anfänger-Themen 9
J SQL Explorer für Eclipse Java Basics - Anfänger-Themen 5
G fragen zum Internet Explorer Java Basics - Anfänger-Themen 6
H Explorer starten Java Basics - Anfänger-Themen 4
S Explorer funktionen nachprogrammieren Java Basics - Anfänger-Themen 2
J Wie kann man im Systempopup einträge machen z.B im Explorer? Java Basics - Anfänger-Themen 6
D "explorer" aufrufen Java Basics - Anfänger-Themen 3
G JTree Explorer Problem mit listRoots() Java Basics - Anfänger-Themen 9

Ähnliche Java Themen


Oben