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

📄 crystallist.java

📁 一个仿千千静听音乐播放器的Java源代码
💻 JAVA
字号:
package player.user;
//download:http://www.codefans.net
import java.awt.*;
import player.module.ImagePanel;
import player.skin.Skin;
import javax.swing.*;
import player.module.MuiscListModel;
import player.module.FileChooser;
import java.io.File;
import player.module.ListItem;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.io.FileInputStream;
import java.io.PrintStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class CrystalList extends JDialog implements MouseListener,KeyListener{
  private ImagePanel contentPanel = new ImagePanel("CrystalList.png");
  private JScrollPane scrollPane = new JScrollPane();
  private MuiscListModel model = new MuiscListModel();
  private JList list = new JList(model);
  private CrystalPlayer frame = null;
  private FileChooser chooser = new FileChooser();
  public CrystalList(CrystalPlayer frame) {
    super(frame);
    this.frame = frame;
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  public FileChooser getFileChooser(){
    return chooser;
  }

  public void addItems(File[] files,boolean isSave){
    if(files != null ){
     for(int i=0;i<files.length;i++){
       model.addElement(new ListItem(files[i]));
     }
     this.saveList();
    }
  }

  public void removeSelectedItems(){
    int[] indexes = list.getSelectedIndices();
    if(indexes != null && indexes.length > 0){
      int i = indexes.length;
      int index = index = indexes[0];
      ListItem item = null;
      while(i > 0){
        item = model.getItemByIndex(indexes[i - 1]);
        Skin.removeListener(item);
        model.removeElement(item);
        i--;
      }
      this.saveList();
      if(model.getSize() > 0){
        if(index + 1 > model.getSize())list.setSelectedIndex(index - 1);
        else if(index == 0)list.setSelectedIndex(0);
        else list.setSelectedIndex(index - 1);
      }
    }
  }

  public ListItem getItemByIndex(int index){
    return model.getItemByIndex(index);
  }

  public ListItem getSelectedItem(){
    return this.getItemByIndex(list.getSelectedIndex());
  }

  public int getSelectedIndex(){
    return list.getSelectedIndex();
  }

  public void setSelectedIndex(int index){
    list.setSelectedIndex(index);
  }

  public int getRowCount(){
    return model.getSize();
  }

  public void doAddItem(){
    int chcek = chooser.showOpenDialog(this);
    if(chcek == 0){
      File[] files = chooser.getSelectedFiles();
      this.addItems(files,true);
    }
  }

  private void jbInit() throws Exception {
    list.addMouseListener(this);
    list.addKeyListener(this);
    list.setCellRenderer(model);
    this.setUndecorated(true);
    this.getContentPane().setLayout(new BorderLayout());
    this.getContentPane().add(contentPanel, BorderLayout.CENTER);
    contentPanel.setLayout(new BorderLayout());
    contentPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
    contentPanel.add(scrollPane, BorderLayout.CENTER);
    scrollPane.getViewport().add(list, null);
    list.setBackground(new Color(238, 238, 238));
    this.setSize(200, 200);
  }

  public static ArrayList getList(){
    ArrayList list = new ArrayList();
    File file = new File("file.ini");
    if(file.exists()){
      FileInputStream in = null;
      BufferedReader reader = null;
      try{
        in = new FileInputStream(file);
        reader = new BufferedReader(new InputStreamReader(in));
        String path = null;
        File muiscFile = null;
        while((path = reader.readLine()) != null){
          if(path.length() > 0){
            muiscFile = new File(path);
            if(muiscFile.exists()){
              list.add(muiscFile);
            }
          }
        }
      }
      catch(Exception e){
        e.printStackTrace();
      }
      finally{
        try{if(in != null)in.close();}catch(Exception e){}
        try{if(reader != null)reader.close();}catch(Exception e){}
      }
    }
    return list;
  }

  public void saveList(){
    File file = new File("file.ini");
    FileOutputStream out = null;
    PrintStream writer = null;
    try{
      if(file.exists())file.delete();
      file.createNewFile();
      out = new FileOutputStream(file);
      writer = new PrintStream(out);
      ListItem item = null;
      if(model.getSize() < 1){
        writer.println("");
      }
      else{
        for (int i = 0; i < model.getSize(); i++) {
          item = model.getItemByIndex(i);
          writer.println(item.getFile().getAbsolutePath() + "\n");
        }
      }
    }
    catch(Exception e){
      e.printStackTrace();
    }
    finally{
      try{if(out != null)out.close();}catch(Exception e){}
      try{if(writer != null)writer.close();}catch(Exception e){}
    }
  }

  public void keyPressed(KeyEvent e) {
    if(e.getKeyCode() == KeyEvent.VK_DELETE)this.removeSelectedItems();
  }
  public void keyReleased(KeyEvent e) {}
  public void keyTyped(KeyEvent e) {}

  public void mouseClicked(MouseEvent e) {
    if(e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2 && list.getSelectedIndex() != -1){
      frame.playSelected();
    }
  }
  public void mouseEntered(MouseEvent e) {}
  public void mouseExited(MouseEvent e) {}
  public void mousePressed(MouseEvent e) {}
  public void mouseReleased(MouseEvent e) {}
}

⌨️ 快捷键说明

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