【전】자바 확장 명 에 따라 시스템,파일 아이콘 가 져 오기

3423 단어 자바swingextBlogsun
사용 클래스:FileSystemView,ShellFolder(API 에서 찾 을 수 없 음)실례 화 대상:클래스 의 정적 방법 으로 대상 을 얻 으 면 됩 니 다.
 
효과 도 는 첨부 파일 참조.
 
package other;

import java.io.File;
import java.io.IOException;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.BoxLayout;
import javax.swing.filechooser.FileSystemView;
import sun.awt.shell.ShellFolder;

public class FileIconExtractor extends JFrame implements ActionListener
{
    /**
     * {      }
     */
    private static final long serialVersionUID = 1L;

    private JButton getIconBtn = new JButton("get Icon");

    private JPanel iconPanel = new JPanel();

    private JTextField extField = new JTextField();

    private JLabel smallIconLabel = new JLabel("small Icon here");

    private JLabel bigIconLabel = new JLabel("big Icon here");

    public FileIconExtractor()
    {
        this.setSize(200, 150);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLayout(new BorderLayout());
        getIconBtn.setActionCommand("GETICON");
        getIconBtn.addActionListener(this);
        iconPanel.setLayout(new BoxLayout(iconPanel, BoxLayout.Y_AXIS));
        iconPanel.add(smallIconLabel);
        iconPanel.add(bigIconLabel);
        this.add(extField, BorderLayout.NORTH);
        this.add(iconPanel, BorderLayout.CENTER);
        this.add(getIconBtn, BorderLayout.SOUTH);
        this.setVisible(true);
    }

    public void actionPerformed(ActionEvent e)
    {
        if (e.getActionCommand().equals("GETICON"))
        {
            String ext = extField.getText();
            File file;
            try
            {
                file = File.createTempFile("icon", "." + ext);
                FileSystemView view = FileSystemView.getFileSystemView();
                Icon smallIcon = view.getSystemIcon(file);
                ShellFolder shellFolder = ShellFolder.getShellFolder(file);
                Icon bigIcon = new ImageIcon(shellFolder.getIcon(true));
                setIconLabel(smallIcon, bigIcon);
                file.delete();
            }
            catch (IOException ioe)
            {
                ioe.printStackTrace();
            }
        }
    }

    private void setIconLabel(Icon smallIcon, Icon bigIcon)
    {
        smallIconLabel.setIcon(smallIcon);
        bigIconLabel.setIcon(bigIcon);
    }

    public static void main(String[] args)
    {
        FileIconExtractor fie = new FileIconExtractor();
    }
}

 
 
주:원문 주소(http://hi.baidu.com/slandi/blog/item/82f21509acc5bdd762d986a7.html)

좋은 웹페이지 즐겨찾기