From 8047076887b10a8aff91d3c85ba1bf31c200e679 Mon Sep 17 00:00:00 2001 From: Donald Shan Date: Sun, 21 Aug 2022 23:27:41 -0700 Subject: Added second preliminary screen for editing tags manually --- src/main/java/FileUtility.java | 25 ++++++ src/main/java/Main.java | 19 +++-- src/main/java/TagEditor.java | 11 --- src/main/java/TagEditorScreen.form | 157 +++++++++++++++++++++++++++++++++++++ src/main/java/TagEditorScreen.java | 149 +++++++++++++++++++++++++++++++++++ 5 files changed, 342 insertions(+), 19 deletions(-) delete mode 100644 src/main/java/TagEditor.java create mode 100644 src/main/java/TagEditorScreen.form create mode 100644 src/main/java/TagEditorScreen.java (limited to 'src') diff --git a/src/main/java/FileUtility.java b/src/main/java/FileUtility.java index 7f35c30..cc0dffb 100644 --- a/src/main/java/FileUtility.java +++ b/src/main/java/FileUtility.java @@ -1,3 +1,4 @@ +import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; import java.io.*; import java.net.URL; @@ -25,6 +26,7 @@ public class FileUtility { fos.close(); is.close(); } + public void moveFile(String source, String destination) { File sourceFile = new File(source); File destinationFile = new File(destination); @@ -131,4 +133,27 @@ public class FileUtility { } return lines; } + public String showDirectoryChooser(){ + JFileChooser fileChooser = new JFileChooser(); + fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + int result = fileChooser.showOpenDialog(null); + if(result == JFileChooser.APPROVE_OPTION){ + return fileChooser.getSelectedFile().getAbsolutePath(); + } + return ""; + } + //get the path of all mp3 files in a directory and return them as a file arraylist + public ArrayList getMp3Files(String path){ + ArrayList mp3Files = new ArrayList(); + File folder = new File(path); + File[] listOfFiles = folder.listFiles(); + for(int i=0;i songs = fileUtil.txtToArrayList(textPath); progress = 0; for(int i = 0;i +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/TagEditorScreen.java b/src/main/java/TagEditorScreen.java new file mode 100644 index 0000000..19ea8fd --- /dev/null +++ b/src/main/java/TagEditorScreen.java @@ -0,0 +1,149 @@ +import org.jaudiotagger.audio.*; +import org.jaudiotagger.tag.FieldKey; +import org.jaudiotagger.tag.Tag; +import org.jaudiotagger.tag.datatype.Artwork; + +import javax.imageio.ImageIO; +import javax.swing.*; +import javax.swing.table.DefaultTableModel; +import java.awt.*; +import java.awt.event.*; +import java.awt.image.BufferedImage; +import java.awt.image.CropImageFilter; +import java.awt.image.FilteredImageSource; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; + +public class TagEditorScreen extends JFrame{ + private JPanel mainPanel; + private JTextField titleField; + private JLabel titleLabel; + private JTextField uploaderField; + private JLabel uploaderLabel; + private JTextField textField1; + private JButton imageChooseButton; + private JTable songTable; + private JButton chooseAudioDirectoryButton; + private JButton applyChangesButton; + private JLabel artIconLabel; + private JTextField textField2; + private FileUtility fileUtil = new FileUtility(); + private String setDirPath = ""; + private ArrayList songList = new ArrayList(); + private long timeOfLastClick = 9999999; + + public TagEditorScreen(){ + this.setContentPane(mainPanel); + this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + this.setLocationRelativeTo(null); + this.setSize(600, 450); + initializeTable(); + this.setVisible(true); + chooseAudioDirectoryButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + clearSongTable(); + setDirPath = fileUtil.showDirectoryChooser(); + songList = fileUtil.getMp3Files(setDirPath); //get arraylist of all files in the directory + for(int i=0;i