Icon ermitteln, mit dem die Datei-Endung verknüpft ist

testalucida

Mitglied
Hi,
ich habe ein JLabel als DropTarget. Wenn ich vom Explorer eine Datei auf das JLabel ziehe, möchte ich, dass dort nicht der Dateiname, sondern das Icon angezeigt wird, mit dem die Datei-Extension verknüpft ist.
(Z.B. das Word-Symbol für .doc-Dateien.)
Wie kann ich dieses Icon ermitteln?
Muss ich in der Registry suchen?
Bin für jeden Hinweis dankbar.

ciaociao
testalucida
 
Hallo!

Auch hierzu mal wieder ein kleines Beispiel:
Code:
/*
 * Created on 30.12.2004@07:21:30
 *
 * TODO Explain me...
 */
package de.tutorials;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;

import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.filechooser.FileSystemView;

/**
 * @author Darimont
 *
 */
public class FileSystemViewExample extends JFrame{
	
	private JLabel lblIcon, lblText;
	private JTextField jtf;
	private JButton btnAction;
	
	public FileSystemViewExample(){
		super("FileSystemViewExample");
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		
		lblIcon = new JLabel();
		lblText = new JLabel("Dateiendung eingeben:");
		
		jtf = new JTextField(10);
		
		btnAction = new JButton("find icon");
		btnAction.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
					String suffix = jtf.getText();
					if(suffix == null)
						return;
					
					File f = new File("foo."+suffix.trim());
					try {
						f.createNewFile();
					} catch (IOException e1) {
						e1.printStackTrace();
					}
					f.deleteOnExit();
					Icon icon = FileSystemView.getFileSystemView().getSystemIcon(f);
					lblIcon.setIcon(icon);
			}});
		
		Container c = getContentPane();
		
		c.add(lblText,BorderLayout.WEST);
		c.add(jtf,BorderLayout.CENTER);
		c.add(lblIcon,BorderLayout.EAST);
		c.add(btnAction,BorderLayout.SOUTH);
		
		pack();
		setVisible(true);
	}

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

Gruß Tom
 

Neue Beiträge

Zurück