ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
732
732
EMPFEHLEN
-
14.01.05 14:30 #1
Hallo Leute,
bezugnehmend auf testalucida:
Wie kann ich das Standard-Icon einer Datei (z.B. vom Dateiexplorer) in einem JPanel, JButton bzw. JLabel anzeigen?
Zitat von testalucida
Ein Code-Schnipsel würde mir weiterhelfen.CU schnuffie
Fragliche Fragen stellende Fragensteller sind für verantwortungslose Antworten antwortender verantwortlicher Antworter selbst verantwortlich.
-
Hallo,
hast Du das vorgehende Thema "Icon ermitteln, mit dem die Datei-Endung verknüpft ist" zu diesem Problem schon gelesen?
http://www.tutorials.de/tutorials185112.html
Da gibt es ein Beispiel von Tom.Geändert von Thomas Darimont (14.01.05 um 18:54 Uhr)
Gruss Bernd
Zitat von mAu
-
14.01.05 18:28 #3
Aha.
Danke, das hilft mir weiter.
CU schnuffie
Fragliche Fragen stellende Fragensteller sind für verantwortungslose Antworten antwortender verantwortlicher Antworter selbst verantwortlich.
-
15.01.05 00:14 #4
- Registriert seit
- Sep 2004
- Ort
- Nürnberg
- Beiträge
- 29
Hi,
hier der Auszug aus meiner "RichTextBox", die eine Erweiterung von JTextPane ist (der Kommentar passt noch nicht ganz zur Methode - drop von Text ist noch nicht realisiert
):
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
// Die RichTextBox ist ein DropTarget: DropTarget droptarget = new DropTarget( this, new DropTargetListener(){ public void dragEnter(DropTargetDragEvent arg0) { } public void dragOver(DropTargetDragEvent arg0) { } public void dropActionChanged(DropTargetDragEvent arg0) { } /** * Wir lassen File- und Textdrags zu. * Wird ein File fallengelassen, zeigen wir ein * FileSymbol an. Text wird an Cursorposition eingefügt. */ public void drop( DropTargetDropEvent e ) { try{ Transferable tr = e.getTransferable(); DataFlavor[] flavors = tr.getTransferDataFlavors(); for (int i = 0; i < flavors.length; i++) { if( flavors[i].isFlavorJavaFileListType() ) { e.acceptDrop( e.getDropAction() ); List files = (List) tr.getTransferData( flavors[i] ); FileSymbol symb = new FileSymbol( files.get( 0 ).toString() ); RichTextBox.this.insertComponent( symb ); e.dropComplete( true ); } } } catch( Throwable t ) { t.printStackTrace(); e.rejectDrop(); } } public void dragExit(DropTargetEvent arg0) { } });
...und das hier ist "FileSymbol", eine Erweiterung von JLabel:
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 140 141 142 143 144 145 146 147
/* * Created on 05.01.2005 * */ package fileRepresentations; import java.awt.Cursor; import java.awt.Font; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.io.File; import java.io.IOException; import javax.swing.Icon; import javax.swing.JLabel; import javax.swing.filechooser.FileSystemView; import fontFactory.FontFactory; /** * @author T05794A * * FileSymbol ist eine Extension-Klasse von JLabel. * Sie ermittelt zu einem File-Objekt das zugehörige System-Icon, * verwendet dieses als Icon und platziert zentriert darunter den * Dateinamen. * Bei Doppelclick auf FileSymbol wird die zur Datei gehörende Anwendung * gestartet. */ public class FileSymbol extends JLabel { /** * Comment for <code>serialVersionUID</code> */ private static final long serialVersionUID = 6283963523329215268L; private File _file; private Cursor _cursorMemo; private Cursor _thiscursor = new Cursor( Cursor.HAND_CURSOR ); /** * Erzeugt ein leeres FileSymbol */ public FileSymbol() { this( (File)null ); } /** * 07.01.2005 18:32:23 * Erzeugt ein FileSymbol aus dem kompletten Pfadnamen * sPathnFile * @param sPathnFile */ public FileSymbol( String sPathnFile ) { this( new File( sPathnFile ) ); } /** * Erzeugt ein Label mit Icon und Beschriftung. * @param icon: das anzuzeigende Icon * @param file: die Datei, deren Icon gezeigt wird. * Ihr Name wird unter dem Icon gezeigt. */ public FileSymbol( File file ) { super(); // so arrangieren, dass der Text zentriert unter dem Icon // angeordnet wird: setVerticalTextPosition( JLabel.BOTTOM ); setHorizontalTextPosition( JLabel.CENTER ); // kleine Schrift einstellen. setFont( FontFactory.getFont( "Arial", Font.PLAIN, 10 ) ); _file = file; if( _file != null ) { setIconAndText(); } // einen MausListener anmelden, damit wir bei Doppelclick auf das // FileSymbol das passende Programm starten können. // Ausserdem wollen wir den Mauszeiger ändern, wenn der Anwender // über unser FileSymbol fährt: addMouseListener( new MouseListener() { public void mouseClicked(MouseEvent e) { //if( e.getClickCount() > 1 ) { //Programm starten, das mit der Datei assoziiert ist runProgram( getFile() ); //} } public void mouseEntered(MouseEvent e) { _cursorMemo = FileSymbol.this.getCursor(); FileSymbol.this.setCursor( _thiscursor ); } public void mouseExited(MouseEvent e) { FileSymbol.this.setCursor( _cursorMemo ); } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } }); } /** * 07.01.2005 18:42:30 * Setzt das mit _file verknüpfte Icon und den Dateinamen */ private void setIconAndText() { Icon icon = FileSystemView.getFileSystemView().getSystemIcon( _file ); // das Icon setzen setIcon( icon ); // den Text setzen setText( _file.getName() ); } /** * 07.01.2005 18:43:00 * Setzt ein neues _file-Objekt * @param file */ public void setFile( File file ) { _file = file; setIconAndText(); } /** * 07.01.2005 18:43:31 * @return File: das _file-Objekt dieses FileSymbol */ public File getFile() { return _file; } private void runProgram( File file ) { String cmd = "cmd /c \"" + file.getAbsolutePath() + "\""; //System.out.println(cmd); try { Runtime.getRuntime().exec(cmd); } catch( IOException ex ) { ex.printStackTrace(); } } }
-
17.01.05 09:34 #5
Ja, kann ich Einiges daraus verwenden. Danke nochmal!
CU schnuffie
Fragliche Fragen stellende Fragensteller sind für verantwortungslose Antworten antwortender verantwortlicher Antworter selbst verantwortlich.
Ähnliche Themen
-
JPanel auf JFrame auch im JDialog anzeigen
Von StehtimSchilf im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 23.03.10, 10:01 -
JPanel .gif Datei anzeigen
Von illaX im Forum JavaAntworten: 8Letzter Beitrag: 06.12.09, 16:12 -
PDF aus Blob auf JPanel anzeigen
Von nethacker008 im Forum JavaAntworten: 0Letzter Beitrag: 16.11.07, 11:21 -
GridBagLayout in JPanel: Wie stelle ich es an das Komponenten im JPanel ...
Von mungoparks im Forum JavaAntworten: 7Letzter Beitrag: 16.05.07, 17:03 -
JPanel Instanz in einen JPanel laden ?
Von mkoeni1 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 4Letzter Beitrag: 15.01.07, 12:15





Zitieren
Login




