From b63b6e96c1706271e9dc02cf5e5865922aff9191 Mon Sep 17 00:00:00 2001 From: Donald Shan Date: Fri, 19 Aug 2022 16:38:32 -0700 Subject: Update Main.java --- src/main/java/org/example/Main.java | 117 +++++++++++++++++++++++++++++++++--- 1 file changed, 110 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/main/java/org/example/Main.java b/src/main/java/org/example/Main.java index 6d87057..ba75319 100644 --- a/src/main/java/org/example/Main.java +++ b/src/main/java/org/example/Main.java @@ -1,4 +1,6 @@ -package org.example; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.io.*; import java.net.URL; import java.util.ArrayList; @@ -9,12 +11,82 @@ import org.jaudiotagger.tag.FieldKey; import org.jaudiotagger.tag.Tag; import org.jaudiotagger.tag.datatype.Artwork; +import javax.swing.*; +import javax.swing.filechooser.FileNameExtensionFilter; +import javax.swing.text.DefaultCaret; import java.util.regex.Pattern; -public class Main { +public class Main extends JFrame { + String textPath = ""; + JPanel panel = new JPanel(); + Boolean readyState = false; + JScrollPane scrollPane; + int progress = 0; + JProgressBar progressBar = new JProgressBar(); + JLabel title = new JLabel("SUPER JUICER DOWNLOAD MUSIC COVERS AND TAG NOW 100% SAFE"); + JButton startButton = new JButton("Set .txt File"); + static JTextArea outputArea = new JTextArea("this is bery bery bery safe no worries no virus malwar ur monies back granteed"); + public Main(){ + this.setDefaultCloseOperation(EXIT_ON_CLOSE); + this.setLocationRelativeTo(null); + this.add(panel); + panel.setLayout(new BoxLayout(panel,BoxLayout.PAGE_AXIS)); + scrollPane = new JScrollPane(outputArea); + scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); + outputArea.setEditable(false); + outputArea.setLineWrap(true); + DefaultCaret caret = (DefaultCaret)outputArea.getCaret(); + caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE); + panel.add(Box.createRigidArea(new Dimension(0,5))); + panel.setBorder(BorderFactory.createEmptyBorder(25,10,20,10)); + startButton.setAlignmentX(CENTER_ALIGNMENT); + title.setAlignmentX(Component.CENTER_ALIGNMENT); + progressBar.setStringPainted(true); + title.setFont(new Font("Verdana", Font.PLAIN, 14)); + panel.add(title); + panel.add(Box.createVerticalStrut(10)); + panel.add(progressBar); + panel.add(Box.createVerticalStrut(10)); + panel.add(startButton); + panel.add(Box.createVerticalStrut(8)); + panel.add(scrollPane); + startButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + if(textPath.equals("")||readyState==false){ + outputArea.setText(outputArea.getText()+"\n"+"txt path has not been set. Launching chooserPane"); + System.out.println(".txt path has not been set. Launching chooserPane"); + textPath = showFileChooser(); + if(!textPath.equals("")){ + showWarning("File has been set.\nMake sure you add a new line for each URL.\nOr else say bye bye to your system32"); + readyState = true; + startButton.setText("Start Download"); + outputArea.setText(outputArea.getText()+"\n"+"Ready to begin downloading. Press the button"); + System.out.println("Ready to begin downloading. Press the button"); + } + } + else{ + Runnable runnable = () -> { + outputArea.setText(""); + startButton.setEnabled(false); + downloadLoop(); + startButton.setEnabled(true); + }; + Thread thread = new Thread(runnable); + thread.start(); + } + } + }); + this.setSize(550,300); + + } public static void main(String[] args) { - ArrayList songs = readFile("songs.txt"); + new Main().setVisible(true); + } + private void downloadLoop(){ + ArrayList songs = readFile(textPath); + progress = 0; for(int i = 0;i