ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
593
593
EMPFEHLEN
-
Also ich muss diesmal für die uni einen File Explorer basteln, mit aufwärts, abwärts, und 2 lists, eine für ordner und eine für dateien (welche im aktuell gewählten Verzeichnis liegen).
Einmal habe ich folgendes Problem:
ich Starte imo bei C:/, würde aber gerne einfach eines von allen verfügbaren laufwerken auswählen können. Gibt es da eine Möglichkeit?
Desweiteren habe ich kleine Probleme beim auwärts Button.
ich hol mir das ganze imo so und tu das DefaultListModel übre add in eine JList, File is schon gesetzt, des wird woanders immer geändert:
nun werden die Pfade aber eben so angezeigt:Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
public DefaultListModel leseOrdner() { DefaultListModel listModel=new DefaultListModel();; try { File[] fileList = file.listFiles(); for(File f : fileList) { if(f.isDirectory()) { listModel.addElement(f); } } } catch(Exception ex) { ex.printStackTrace(); } finally { return listModel; } }
C:\x\y\z
und der "\" ist das Problem. wollte das ganze bei:
C:\x
z.B. so schneiden:
War halt ersma nu zum testen, richtig muss ich das ja dann über ne schleife machen.Code :1
String newPath=file.getPath().substring(0,file.getPath().indexOf("\"));
Aber das " \" nimmt der nicht ... '\' auch nicht.
Jemand eine Idee?
P.S: Das try catch is imo drin weil ich öfter beim wechseln in den nächsten Ordner ne Null Pointer bekomm, ich komm z.B. ohne Probleme in C:/dell oder C:/Spiele rein, in C:/Programme aber nicht.
Für welche die es Interessiert und mal drüber schaun wollen der komplette Code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
package aufgaben; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; import javax.swing.*; import javax.swing.border.*; import javax.swing.event.*; public class FileExplorer extends JFrame implements ActionListener { private JLabel l1; private JList list1,list2; private JButton runter,hoch; private JPanel p1,p2,p3; private Border blackline; private File file = new File("C:/"); public FileExplorer() { super(); this.setSize(800,800); this.setTitle("File Explorer"); this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); this.setLayout(new GridLayout(1,3)); blackline = BorderFactory.createLineBorder(Color.black); initp1(); initp2(); initp3(); this.add(p1, BorderLayout.WEST); this.add(p2, BorderLayout.CENTER); this.add(p3, BorderLayout.EAST); this.setVisible(true); } public void initp1() { p1=new JPanel(); l1=new JLabel(); hoch=new JButton(); runter=new JButton(); p1.setLayout(new GridLayout(3,2)); l1.setText("C:/"); hoch.setText("Hoch"); runter.setText("Runter"); runter.addActionListener(this); p1.add(runter); p1.add(hoch); p1.add(l1); } public void initp2() { p2=new JPanel(); p2.setBorder(blackline); list1=new JList(this.leseOrdner()); p2.add(list1); } public void initp3() { p3=new JPanel(); p3.setBorder(blackline); list2 = new JList(this.leseDateien()); p3.add(list2); } public DefaultListModel leseOrdner() { DefaultListModel listModel=new DefaultListModel();; try { File[] fileList = file.listFiles(); for(File f : fileList) { if(f.isDirectory()) { listModel.addElement(f); } } } catch(Exception ex) { ex.printStackTrace(); } finally { return listModel; } } public DefaultListModel leseDateien() { File[] fileList = file.listFiles(); DefaultListModel listModel = new DefaultListModel(); for(File f : fileList) { if(!f.isDirectory()) { listModel.addElement(f); } } return listModel; } public static void main(String[] args) { FileExplorer f = new FileExplorer(); } @Override public void actionPerformed(ActionEvent e) { if(e.getSource().equals(runter)) { file = new File(list1.getSelectedValue().toString()); list1.setModel(this.leseOrdner()); list2.setModel(this.leseDateien()); l1.setText(file.getPath()); } else if(e.getSource().equals(hoch)) { } } }
EDIT: ok das problem mit dem String hat sich jetzt erledigt, das hab ich jetzt zusammen gebastlt, musste "\\" sein.
Nur in C:/Programme komm ich immernoch nicht rein
EDIT2:: Ok nach langem rumprobieren und paar prints setzen hab ich den fehler gefunden. obwohl der ordner Programme heißt leitet er wohl auf C:/Pogramm Files. ist das generell immer so? ist mir noch nie aufgefallen. Gibt es noch mehr solcher Sonderheiten die ich einzeln bearbeiten muss?Geändert von I2oxxi (25.01.12 um 20:32 Uhr)
-
25.01.12 22:30 #2
- Registriert seit
- Jun 2009
- Beiträge
- 870
Normalerweise ja. Es gibt noch einige Ordner, die dir vom Windows Explorer anders benannt werden, als sie auf der Festplatte heißen. Der Müll zum Beispiel, außerdem solche speziellen Ordner wie $MFT.
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
java.io.File#listRoots() liefert dir ein Array der Rootverzeichnisse.
Geändert von java123 (27.01.12 um 22:28 Uhr)
-
02.02.12 20:14 #4
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
alternativ zu file.listRoots() könntest du dir mal die Klasse FileSystemView anschauen:
http://docs.oracle.com/javase/6/docs...ystemView.html
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
Ähnliche Themen
-
Baustelle Arbeitsplatz
Von general_failure im Forum WerkstattAntworten: 1Letzter Beitrag: 17.08.07, 04:09 -
link von arbeitsplatz ?
Von btotheroots im Forum HTML & XHTMLAntworten: 2Letzter Beitrag: 02.10.05, 15:54 -
Verdammter Arbeitsplatz
Von timo0804 im Forum HardwareAntworten: 7Letzter Beitrag: 13.05.05, 15:31 -
Ergonomie am Arbeitsplatz
Von Visu1 im Forum SmalltalkAntworten: 4Letzter Beitrag: 12.10.04, 21:19 -
bei windows 2k andere symbole für arbeitsplatz netzwerkumgebung papierkorb festlegen
Von Bomber im Forum Microsoft WindowsAntworten: 0Letzter Beitrag: 31.05.02, 01:28





Zitieren

Login





