-
大小: 5KB文件類型: .java金幣: 1下載: 0 次發布日期: 2021-05-17
- 語言: Java
- 標簽: Swing??編程??JFileChoose??
資源簡介
Swing做的簡單圖片查看器,JFileChoose的用法。
代碼片段和文件信息
package?yixita;
import?java.io.File;
import?java.beans.*;
import?java.util.*;
import?java.awt.*;
import?java.awt.event.*;
import?javax.swing.*;
import?javax.swing.filechooser.*;
public?class?ImageViewer
{
//?定義圖片預覽組件的大小
final?int?PREVIEW_SIZE?=?100;
Jframe?jf?=?new?Jframe(“簡單圖片查看器“);
JMenuBar?menuBar?=?new?JMenuBar();
//?該label用于顯示圖片
JLabel?label?=?new?JLabel();
//?以當前路徑創建文件選擇器
JFileChooser?chooser?=?new?JFileChooser(“.“);
JLabel?accessory?=?new?JLabel();
//?定義文件過濾器
ExtensionFileFilter?filter?=?new?ExtensionFileFilter();
public?void?init()
{
//?--------下面開始初始化JFileChooser的相關屬性--------
//??創建一個FileFilter
filter.addExtension(“jpg“);
filter.addExtension(“jpeg“);
filter.addExtension(“gif“);
filter.addExtension(“png“);
filter.setDescription(“圖片文件(*.jpg*.jpeg*.gif*.png)“);
chooser.addChoosableFileFilter(filter);
//?禁止“文件類型”下拉列表中顯示“所有文件”選項。
chooser.setAcceptAllFileFilterUsed(false);???//?①
//?為文件選擇器指定自定義的FileView對象
chooser.setFileView(new?FileIconView(filter));
//?為文件選擇器指定一個預覽圖片的附件
chooser.setAccessory(accessory);?????//?②
//?設置預覽圖片組件的大小和邊框
accessory.setPreferredSize(new?Dimension(PREVIEW_SIZE?PREVIEW_SIZE));
accessory.setBorder(BorderFactory.createEtchedBorder());
//?用于檢測被選擇文件的改變事件
chooser.addPropertyChangeListener(new?PropertyChangeListener()
{
public?void?propertyChange(PropertyChangeEvent?event)
{
//?JFileChooser的被選文件已經發生了改變
if?(event.getPropertyName()?==
JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)
{
//?獲取用戶選擇的新文件
File?f?=?(File)?event.getNewValue();
if?(f?==?null)
{
accessory.setIcon(null);
return;
}
//?將所選文件讀入ImageIcon對象中
ImageIcon?icon?=?new?ImageIcon(f.getPath());
//?如果圖像太大,則縮小它
if(icon.getIconWidth()?>?PREVIEW_SIZE)
{
icon?=?new?ImageIcon(icon.getImage().getScaledInstance
(PREVIEW_SIZE?-1?Image.SCALE_DEFAULT));
}
//?改變accessory?Label的圖標
accessory.setIcon(icon);
}
}
});
//?------下面代碼開始為該窗口安裝菜單------
JMenu?menu?=?new?JMenu(“文件“);
menuBar.add(menu);
JMenuItem?openItem?=?new?JMenuItem(“打開“);
menu.add(openItem);
//?單擊openItem菜單項顯示“打開文件”的對話框
openItem.addActionListener(new?ActionListener()
{
public?void?actionPerformed(ActionEvent?event)
{
//?設置文件對話框的當前路徑
//?chooser.setCurrentDirectory
評論
共有 條評論