复制番号代番号次のように:
java.io.ファイルをインポートします。
インポート java.io.IOException;
インポートjava.awt.BorderLayout;
インポートjava.awt.event.ActionEvent;
インポート java.awt.event.ActionListener;
javax.swing.Icon をインポートします。
インポート javax.swing.ImageIcon;
javax.swing.JButtonをインポートします。
javax.swing.JFrameをインポートします。
javax.swing.JPanelをインポートします。
インポートjavax.swing.JTextField;
javax.swing.JLabel をインポートします。
インポートjavax.swing.BoxLayout;
インポート javax.swing.filechooser.FileSystemView;
インポート sun.awt.shell.ShellFolder;
public class FileIconExtractor extends JFrameimplements ActionListener{
private JButton getIconBtn = new JButton("アイコンを取得");
private JPanel iconPanel = new JPanel();
private JTextField extField = new JTextField();
private JLabel smallIconLabel = new JLabel("ここに小さいアイコン");
private JLabel bigIconLabel = new JLabel("ここに大きなアイコン");
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")) {
文字列 ext = extField.getText();
ファイルファイル;
試す
{
file = File.createTempFile("アイコン", "." + 拡張子);
FileSystemView ビュー = FileSystemView.getFileSystemView();
アイコン smallIcon = view.getSystemIcon(file);
ShellFoldershellFolder = ShellFolder.getShellFolder(file);
アイコン bigIcon = new ImageIcon(shellFolder.getIcon(true));
setIconLabel(smallIcon, bigIcon);
ファイル.削除();
}
キャッチ (IOException ioe)
{
ioe.printStackTrace();
}
}
}
private void setIconLabel(アイコン smallIcon, アイコン bigIcon) {
smallIconLabel.setIcon(smallIcon);
bigIconLabel.setIcon(bigIcon);
}
public static void main(String[] args) {
FileIconExtractor fie = new FileIconExtractor();
}
}