⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 playdialog.java

📁 数码照片管理程序是我们公司在开发过程中的用java编写的模块
💻 JAVA
字号:
/*
 * PlayDialog2.java
 *
 * Created on 2008年8月26日, 上午9:14
 */
package com.mwq.album.frame;

import com.mwq.album.dao.Dao;
import com.mwq.album.mwing.PhotoPreviewButton;
import com.mwq.album.tool.ScreenSize;
import com.mwq.album.tool.ToolTip;
import java.awt.Component;
import java.util.Vector;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;

/**
 *
 * @author  Administrator
 */
public class PlayDialog extends javax.swing.JDialog {

    private final Dao dao = Dao.getInstance();
    private final Component[] photos;
    private final int maxIndex;
    private int showIndex = 0;
    private boolean isPlay = false;
    private boolean isPause = false;

    /** Creates new form PlayDialog2 */
    public PlayDialog(java.awt.Frame parent, boolean modal, Component... photos) {
        super(parent, modal);
        initComponents();
        this.photos = photos;
        maxIndex = photos.length - 1;
        setBounds(0, 0, ScreenSize.getWidth(), ScreenSize.getHeight());
        handRadioButtonActionPerformed(null);
        showPointedPhoto(0);
    }

    private void showPointedPhoto(int photoIndex) {
        Vector photoV = dao.selectPhoto(photos[photoIndex].getName());
        photoLabel.setIcon(new ImageIcon(((PhotoPreviewButton) photos[photoIndex]).getPath()));
        ToolTip.set(photoLabel, photoV);
        infoLabel.setText("第 " + (photoIndex + 1) + " 张        图片名称:" + photoV.get(3) + "        拍摄日期:" + photoV.get(2));
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        modeButtonGroup = new javax.swing.ButtonGroup();
        handlePanel = new javax.swing.JPanel();
        modeLabel = new javax.swing.JLabel();
        handRadioButton = new javax.swing.JRadioButton();
        autoRadioButton = new javax.swing.JRadioButton();
        jLabel1 = new javax.swing.JLabel();
        previousButton = new javax.swing.JButton();
        nextButton = new javax.swing.JButton();
        jLabel2 = new javax.swing.JLabel();
        timeLabel = new javax.swing.JLabel();
        secondComboBox = new javax.swing.JComboBox();
        secondLabel = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        exitButton = new javax.swing.JButton();
        jPanel1 = new javax.swing.JPanel();
        photoLabel = new javax.swing.JLabel();
        infoLabel = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setUndecorated(true);

        modeLabel.setText("播放模式:");
        handlePanel.add(modeLabel);

        modeButtonGroup.add(handRadioButton);
        handRadioButton.setSelected(true);
        handRadioButton.setText("手动");
        handRadioButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                handRadioButtonActionPerformed(evt);
            }
        });
        handlePanel.add(handRadioButton);

        modeButtonGroup.add(autoRadioButton);
        autoRadioButton.setText("自动");
        autoRadioButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                autoRadioButtonActionPerformed(evt);
            }
        });
        handlePanel.add(autoRadioButton);

        jLabel1.setText("        ");
        handlePanel.add(jLabel1);

        previousButton.setText("〈");
        previousButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                previousButtonActionPerformed(evt);
            }
        });
        handlePanel.add(previousButton);

        nextButton.setText("〉");
        nextButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                nextButtonActionPerformed(evt);
            }
        });
        handlePanel.add(nextButton);

        jLabel2.setText("        ");
        handlePanel.add(jLabel2);

        timeLabel.setText("展示时间:");
        handlePanel.add(timeLabel);

        secondComboBox.setMaximumRowCount(9);
        secondComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9" }));
        handlePanel.add(secondComboBox);

        secondLabel.setText("秒");
        handlePanel.add(secondLabel);

        jLabel3.setText("        ");
        handlePanel.add(jLabel3);

        exitButton.setText("退出");
        exitButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                exitButtonActionPerformed(evt);
            }
        });
        handlePanel.add(exitButton);

        getContentPane().add(handlePanel, java.awt.BorderLayout.PAGE_END);

        jPanel1.setLayout(new java.awt.BorderLayout());

        photoLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        photoLabel.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseEntered(java.awt.event.MouseEvent evt) {
                photoLabelMouseEntered(evt);
            }
            public void mouseExited(java.awt.event.MouseEvent evt) {
                photoLabelMouseExited(evt);
            }
        });
        jPanel1.add(photoLabel, java.awt.BorderLayout.CENTER);

        infoLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jPanel1.add(infoLabel, java.awt.BorderLayout.SOUTH);

        getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);

        pack();
    }// </editor-fold>                        

private void previousButtonActionPerformed(java.awt.event.ActionEvent evt) {                                               
// TODO add your handling code here:
    if (showIndex == maxIndex) {// 如果显示照片的索引等于最后一张照片的索引

        nextButton.setEnabled(true);// 设置下一张按钮可用

    }
    showPointedPhoto(--showIndex);// 显示指定照片

    if (showIndex == 0) {// 如果显示照片的索引等于0

        previousButton.setEnabled(false);// 设置上一张按钮不可用

    }
}                                              

private void nextButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           
// TODO add your handling code here:
    if (showIndex == 0) {// 如果显示照片的索引等于0

        previousButton.setEnabled(true);// 设置上一张按钮可用

    }
    showPointedPhoto(++showIndex);// 显示指定照片

    if (showIndex == maxIndex) {// 如果显示照片的索引等于最后一张照片的索引

        nextButton.setEnabled(false);// 设置下一张按钮不可用

    }
}                                          

private void exitButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           
// TODO add your handling code here:
    isPlay = false;// 停止播放

    dispose();// 销毁播放器对话框
}                                          

private void handRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                
// TODO add your handling code here:
    isPlay = false;// 采用手动查看模式

    previousButton.setEnabled(true);// 设置上一张按钮可用

    nextButton.setEnabled(true);// 设置下一张按钮可用

    timeLabel.setEnabled(false);// 设置展示时间标签不可用

    secondComboBox.setEnabled(false);// 设置时间组合框不可用

    secondLabel.setEnabled(false);// 设置单位标签不可用
}                                               

private void autoRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                
// TODO add your handling code here:
    isPlay = true;// 采用自动播放模式

    previousButton.setEnabled(false);// 设置上一张按钮不可用

    nextButton.setEnabled(false);// 设置下一张按钮不可用

    timeLabel.setEnabled(true);// 设置展示时间标签可用

    secondComboBox.setEnabled(true);// 设置时间组合框可用

    secondLabel.setEnabled(true);// 设置单位标签可用

    new Thread() {// 创建并开启一张线程

        @Override
        public void run() {// 重构该方法

            close:
            while (isPlay) {// 如果采用自动播放模式

                for (int i = showIndex; i < maxIndex + 1; i++) {// 遍历照片

                    showPointedPhoto(i);// 显示指定照片

                    try {
                        Thread.sleep((secondComboBox.getSelectedIndex() + 1) * 1000);// 修面指定秒

                        while (isPause) {// 如果暂停播放

                            Thread.sleep(500);// 休眠500毫秒

                        }
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    if (!isPlay) {// 如果采用手动查看模式

                        break close;// 停止播放

                    }
                }
                int i = JOptionPane.showOptionDialog(PlayDialog.this, "图片播放完毕!", "播放完毕",
                        JOptionPane.INFORMATION_MESSAGE, JOptionPane.YES_OPTION, null,
                        new String[]{"重复播放", "从头播放", "退出播放"}, "退出播放");
                if (i > 0) {
                    if (i == 1) {// 从头播放

                        showIndex = 0;
                    } else {// 退出播放

                        isPlay = false;// 停止播放

                        PlayDialog.this.dispose();// 销毁播放器对话框

                    }
                }
            }
        }
    }.start();
}                                               

private void photoLabelMouseEntered(java.awt.event.MouseEvent evt) {                                        
// TODO add your handling code here:
    isPause = true;// 暂停播放
}                                       

private void photoLabelMouseExited(java.awt.event.MouseEvent evt) {                                       
// TODO add your handling code here:
    isPause = false;// 继续播放
}                                      

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                PlayDialog dialog = new PlayDialog(new javax.swing.JFrame(), true);
                dialog.addWindowListener(new java.awt.event.WindowAdapter() {

                    @Override
                    public void windowClosing(java.awt.event.WindowEvent e) {
                        System.exit(0);
                    }
                });
                dialog.setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JRadioButton autoRadioButton;
    private javax.swing.JButton exitButton;
    private javax.swing.JRadioButton handRadioButton;
    private javax.swing.JPanel handlePanel;
    private javax.swing.JLabel infoLabel;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JPanel jPanel1;
    private javax.swing.ButtonGroup modeButtonGroup;
    private javax.swing.JLabel modeLabel;
    private javax.swing.JButton nextButton;
    private javax.swing.JLabel photoLabel;
    private javax.swing.JButton previousButton;
    private javax.swing.JComboBox secondComboBox;
    private javax.swing.JLabel secondLabel;
    private javax.swing.JLabel timeLabel;
    // End of variables declaration                   
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -