/*
* AlbumPanel.java
*
* Created on 2008年8月15日, 上午10:39
*/
package com.mwq.album;
import java.awt.Component;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import java.util.Iterator;
import java.util.Vector;
import javax.swing.GroupLayout;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.SwingUtilities;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
import com.mwq.album.dao.Dao;
import com.mwq.album.frame.FindPhotoInfoDialog;
import com.mwq.album.frame.PlayDialog;
import com.mwq.album.frame.UpdatePhotoInfoDialog;
import com.mwq.album.mwing.BreviaryPhotoPanel;
import com.mwq.album.mwing.LanternSlidePanel;
import com.mwq.album.mwing.MLabel;
import com.mwq.album.mwing.MPanel;
import com.mwq.album.mwing.MTreeNode;
import com.mwq.album.mwing.PhotoPreviewButton;
/**
*
* @author Administrator
*/
public class AlbumPanel extends javax.swing.JPanel {
private static final Dao dao = Dao.getInstance();
private DefaultTreeModel treeModel;
private Object primaryItem;
private Thread loadPhotoThread;
/** Creates new form AlbumPanel */
public AlbumPanel() {
initComponents();
initAlbumTree();
photoPanel.add(new BreviaryPhotoPanel());
}
private javax.swing.filechooser.FileFilter swingFileFilter = new javax.swing.filechooser.FileFilter() {
public boolean accept(File file) {
if (file.isDirectory()) {
return true;
} else {
String name = file.getName();
String type = name.substring(name.lastIndexOf("."))
.toUpperCase();
if (type.equals(".JPG") || type.equals(".JPEG")) {
return true;
}
return false;
}
}
public String getDescription() {
return "图像文件(.JPG;.JPEG)";
}
};
private java.io.FileFilter ioFileFilter = new java.io.FileFilter() {
public boolean accept(File file) {
if (file.isDirectory()) {
return false;
} else {
String name = file.getName();
String type = name.substring(name.lastIndexOf('.'))
.toUpperCase();
if (type.equals(".JPG") || type.equals(".JPEG")) {
return true;
} else {
return false;
}
}
}
};
Object[] photoInfo = { "", 0, "", "〈标题〉", "〈描述〉" };
private ShowModeComboBoxIL showModeComboBoxIL = new ShowModeComboBoxIL();
private void initAlbumTree() {
final MTreeNode root = new MTreeNode("album");
loadChildNode(root);
treeModel = new DefaultTreeModel(root, true);
albumTree.setModel(treeModel);
}
private class ShowModeComboBoxIL implements ItemListener {
private Object primaryItem;
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
int selectedIndex = seeModeComboBox.getSelectedIndex();
switch (selectedIndex) {
case 0:
photoPanel.remove(0);
photoPanel.add(new BreviaryPhotoPanel());
photoPanel.validate();
break;
case 1:
photoPanel.remove(0);
LanternSlidePanel panel = new LanternSlidePanel();
if (panel.getPhotoBoxPanel().getComponentCount() > 0) {
if (PhotoPreviewButton.getSelectedPhoto().size() > 0) {
panel.getShowPhotoLabel().setIcon(
new ImageIcon(PhotoPreviewButton
.getSelectedPhoto().firstElement()
.getPath()));
} else {
panel.getShowPhotoLabel()
.setIcon(
new ImageIcon(
((PhotoPreviewButton) panel
.getPhotoBoxPanel()
.getComponent(0))
.getPath()));
}
}
photoPanel.add(panel);
photoPanel.validate();
break;
default:
MPanel showPanel = (MPanel) photoPanel.getComponent(0);
Component[] photos = showPanel.getPhotoBoxPanel()
.getComponents();
if (photos.length > 0) {
new PlayDialog(null, true, photos).setVisible(true);
}
seeModeComboBox.removeItemListener(showModeComboBoxIL);
seeModeComboBox.setSelectedItem(primaryItem);
seeModeComboBox.addItemListener(showModeComboBoxIL);
}
} else {
primaryItem = e.getItem();
}
}
}
public static JTree getAlbumTree() {
return albumTree;
}
public static JPanel getPhotoPanel() {
return photoPanel;
}
private String getSelectedPath() {
String upLoadPath = "/img/album";
upLoadPath = AlbumFrame.class.getResource(upLoadPath).getPath();
TreePath selectionPath = albumTree.getSelectionPath();
if (selectionPath == null) {
return null;
} else {
Object[] treePath = selectionPath.getPath();
for (int i = 1; i < treePath.length; i++) {
upLoadPath += "/" + treePath[i];
}
return upLoadPath;
}
}
public static void loadChildNode(MTreeNode node) {
Vector albums = dao.selectAlbums(node.getId());
for (Iterator it = albums.iterator(); it.hasNext();) {
Vector album = (Vector) it.next();
node.add(new MTreeNode((Integer) album.get(0), album.get(2)));
}
node.setLoad(true);
}
private void addPhoto(File selectedFile, String upLoadPath) {
String photoName = upLoadPhoto(selectedFile, upLoadPath);// 上传图片并获得上传后的名称
photoInfo[0] = photoName;// 设置图片名称
photoInfo[2] = photoName.substring(0, 10);// 设置拍摄日期
dao.insertPhoto(photoInfo);// 保存信息到数据库
MPanel panel = (MPanel) photoPanel.getComponent(0);// 获得浏览方式面板
JPanel photoBox = panel.getPhotoBoxPanel();// 获得图片箱面板
photoBox.add(new PhotoPreviewButton(new File(upLoadPath + "/"
+ photoName)));// 添加缩略图
panel.validate();// 刷新浏览方式面板
}
private String upLoadPhoto(File selectedPhoto, String upLoadPath) {
String selectedPhotoName = selectedPhoto.getName().toLowerCase();// 获得图片名称
String photoType = selectedPhotoName.substring(selectedPhotoName
.lastIndexOf("."));// 获得图片格式
String upLoadPhotoName = getPhotoName() + photoType;// 定义上传后的图片名称
upLoadPath += "/" + upLoadPhotoName;// 定义上传路径
File upLoadPhoto = new File(upLoadPath);// 创建文件对象
if (!upLoadPhoto.getParentFile().exists()) {// 如果上传路径不存在
upLoadPhoto.getParentFile().mkdirs();// 创建该路径
}
try {
upLoadPhoto.createNewFile();// 创建文件对象
} catch (IOException e1) {
e1.printStackTrace();
}
try {
InputStream inStream = new FileInputStream(selectedPhoto);// 创建文件输入流对象
OutputStream outStream = new FileOutputStream(upLoadPhoto);// 创建文件输出流对象
int readBytes = 0; // 读取字节数
byte[] buffer = new byte[10240]; // 定义缓存数组
while ((readBytes = inStream.read(buffer, 0, 10240)) != -1) {// 从输入流读取数据到缓存数组中
outStream.write(buffer, 0, readBytes); // 将缓存数组中的数据输出到输出流
}
outStream.close();// 关闭输出流对象
inStream.close();// 关闭输入流对象
} catch (Exception e1) {
e1.printStackTrace();
}
return upLoadPhotoName;
}
private String getPhotoName() {
Date currentDate = new Date();// 创建日期对象
String date = String.format("%tF", currentDate);// 格式化日期为:2008-08-08
String time = String.format("%tT", currentDate);// 格式化时间为:16:07:05
String milliSecond = String.format("%tL", currentDate);// 格式化毫秒为:017
return date + " " + time.replace(':', '-') + " " + milliSecond;
}
private String getAlbumName(int fatherId, String title, String message) {
String name = null;// 相册名称
while (name == null) {
name = JOptionPane.showInputDialog(this, message, title,
JOptionPane.INFORMATION_ME
没有合适的资源?快使用搜索试试~ 我知道了~
《Java开发典型模块大全》光盘源码
共523个文件
class:241个
dat:129个
java:82个
5星 · 超过95%的资源 需积分: 10 117 下载量 90 浏览量
2010-07-01
11:25:19
上传
评论 1
收藏 11.6MB RAR 举报
温馨提示
《Java开发典型模块大全》是学习java的一本很好的书,由于源码太大,所以分部上传
资源推荐
资源详情
资源评论
收起资源包目录
《Java开发典型模块大全》光盘源码 (523个子文件)
ALBUMPANEL.CLASS 24KB
MAPPANEL.CLASS 20KB
FTP_CLIENT_FRAME.CLASS 16KB
ADVANCEDSEARCHDIALOG.CLASS 15KB
CALENDARDIALOG.CLASS 13KB
LOCALPANEL.CLASS 12KB
FINDPHOTOINFODIALOG.CLASS 11KB
CALENDARDIALOG.CLASS 10KB
MANAGESIGNDIALOG.CLASS 10KB
MANAGESORTDIALOG.CLASS 9KB
FTPPANEL.CLASS 9KB
QUEUEPANEL.CLASS 9KB
DAO.CLASS 9KB
PLAYDIALOG.CLASS 8KB
UPDATEPHOTOINFODIALOG.CLASS 8KB
DOWNTHREAD.CLASS 6KB
FTPSITEDIALOG.CLASS 6KB
UPLOADTHREAD.CLASS 6KB
SHOWSIGNDIALOG.CLASS 6KB
DAO.CLASS 6KB
SITEDIALOG.CLASS 6KB
MTREEDIALOG.CLASS 5KB
FTPLINKDIALOG.CLASS 5KB
MAPPROCESSOR.CLASS 5KB
BIGMAPLABEL.CLASS 4KB
PHOTOPREVIEWBUTTON$2.CLASS 4KB
DELFILEACTION$1.CLASS 4KB
BASEDAO.CLASS 3KB
BASEDAO.CLASS 3KB
CALENDARPANEL.CLASS 3KB
CALENDARPANEL.CLASS 3KB
JDBC.CLASS 3KB
ALBUMPANEL$SHOWMODECOMBOBOXIL.CLASS 3KB
DELFILEACTION$1.CLASS 3KB
FTPFILE.CLASS 3KB
ALBUMFRAME.CLASS 3KB
JDBC.CLASS 3KB
MTREEPANEL.CLASS 3KB
PHOTOPREVIEWBUTTON$4.CLASS 3KB
DOWNLOADPANEL.CLASS 3KB
UPLOADPANEL.CLASS 3KB
PROGRESSBARDIALOG.CLASS 3KB
FINDPHOTOINFODIALOG$5.CLASS 3KB
FTPPANEL$2.CLASS 3KB
FTPCLIENT.CLASS 3KB
PHOTOPREVIEWBUTTON.CLASS 2KB
CREATEFOLDERACTION.CLASS 2KB
FTPTABLECELLRANDERER.CLASS 2KB
RENNAMEACTION.CLASS 2KB
UPLOADACTION.CLASS 2KB
PHOTOPREVIEWBUTTON$1.CLASS 2KB
SITEINFOBEAN.CLASS 2KB
SHOWDIALOG.CLASS 2KB
CUTLINKACTION.CLASS 2KB
RENAMEACTION.CLASS 2KB
CALENDARDIALOG$MONTHTEXTFIELDKL.CLASS 2KB
CREATEFOLDERACTION.CLASS 2KB
CALENDARDIALOG$YEARTEXTFIELDKL.CLASS 2KB
MAPPANEL$23.CLASS 2KB
PLAYDIALOG$7.CLASS 2KB
TOOLTIP.CLASS 2KB
ABOUTITEMACTION.CLASS 2KB
CALENDARDIALOG$SUBMONTHBUTTONAL.CLASS 2KB
CALENDARDIALOG$ADDMONTHBUTTONAL.CLASS 2KB
CALENDARDIALOG$TODAYBUTTONAL.CLASS 2KB
SETMAPDIALOG.CLASS 2KB
DOWNACTION.CLASS 2KB
SMALLMAPLABEL.CLASS 2KB
CALENDARPANEL$3.CLASS 2KB
CALENDARPANEL$3.CLASS 2KB
DELFILEACTION.CLASS 2KB
DELFILEACTION.CLASS 2KB
CALENDARDIALOG$ADDYEARBUTTONAL.CLASS 2KB
CALENDARDIALOG$SUBYEARBUTTONAL.CLASS 2KB
CALENDARDIALOG$MONTHTEXTFIELDFL.CLASS 1KB
CALENDARDIALOG$YEARTEXTFIELDFL.CLASS 1KB
QUEUETABLECELLRANDERER.CLASS 1KB
ALBUMPANEL$16.CLASS 1KB
MAPFRAME.CLASS 1KB
MTABLECELL.CLASS 1KB
MTABLECELL.CLASS 1KB
MTABLEMODEL.CLASS 1KB
MTABLEMODEL.CLASS 1KB
FTP_CLIENT_FRAME$12.CLASS 1KB
TABLECONVERTER.CLASS 1KB
ALBUMPANEL$1.CLASS 1KB
LANTERNSLIDEPANEL.CLASS 1KB
BREVIARYPHOTOPANEL.CLASS 1KB
QUEUEPANEL$1.CLASS 1KB
UPLOADTHREAD$1.CLASS 1KB
MAPPANEL$22.CLASS 1KB
FTPPANEL$3.CLASS 1KB
ALBUMPANEL$15.CLASS 1KB
SCREENSIZE.CLASS 1KB
SCREENSIZE.CLASS 1KB
ALBUMPANEL$2.CLASS 1KB
DOWNTHREAD$1.CLASS 1KB
MANAGESORTDIALOG$5.CLASS 1KB
FTP_CLIENT_FRAME$10.CLASS 1KB
MTREENODE.CLASS 1KB
共 523 条
- 1
- 2
- 3
- 4
- 5
- 6
victor19840330
- 粉丝: 1
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页