package GUI;
import BuisnessLogik.MP3Player;
import Data.MyTransferHandler;
import Data.Track;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.dnd.DropTargetDragEvent;
import java.awt.dnd.DropTargetDropEvent;
import java.awt.dnd.DropTargetEvent;
import java.awt.dnd.DropTargetListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.border.BevelBorder;
import org.jaudiotagger.audio.exceptions.CannotReadException;
import org.jaudiotagger.audio.exceptions.InvalidAudioFrameException;
import org.jaudiotagger.audio.exceptions.ReadOnlyFileException;
import org.jaudiotagger.tag.TagException;
public class Gui extends javax.swing.JFrame implements MouseListener, DropTargetListener {
JPanel panel;
MP3Player mp3Player = new MP3Player();
Track track = new Track();
public Gui() {
initComponents();
los();
changeBG();
}
/**
* 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() {
jPanel_music = new javax.swing.JPanel();
jPanel8 = new javax.swing.JPanel();
btn_play = new javax.swing.JButton();
lbl_titelAusgabe = new javax.swing.JLabel();
lbl_albumTitel = new javax.swing.JLabel();
lbl_genreAusgabe = new javax.swing.JLabel();
jLabel1 = new javax.swing.JLabel();
jPanel9 = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setBackground(new java.awt.Color(237, 237, 237));
jPanel_music.setMinimumSize(new java.awt.Dimension(0, 0));
jPanel_music.setPreferredSize(new java.awt.Dimension(350, 350));
org.jdesktop.layout.GroupLayout jPanel_musicLayout = new org.jdesktop.layout.GroupLayout(jPanel_music);
jPanel_music.setLayout(jPanel_musicLayout);
jPanel_musicLayout.setHorizontalGroup(
jPanel_musicLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 350, Short.MAX_VALUE)
);
jPanel_musicLayout.setVerticalGroup(
jPanel_musicLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 0, Short.MAX_VALUE)
);
jPanel8.setPreferredSize(new java.awt.Dimension(180, 350));
btn_play.setText("Play");
btn_play.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btn_playActionPerformed(evt);
}
});
lbl_titelAusgabe.setText("Künstler");
lbl_albumTitel.setText("Album");
lbl_genreAusgabe.setText("Genre");
jLabel1.setText("jLabel1");
org.jdesktop.layout.GroupLayout jPanel8Layout = new org.jdesktop.layout.GroupLayout(jPanel8);
jPanel8.setLayout(jPanel8Layout);
jPanel8Layout.setHorizontalGroup(
jPanel8Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel8Layout.createSequentialGroup()
.add(jPanel8Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel8Layout.createSequentialGroup()
.addContainerGap(117, Short.MAX_VALUE)
.add(btn_play))
.add(jPanel8Layout.createSequentialGroup()
.add(15, 15, 15)
.add(jPanel8Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
.add(lbl_titelAusgabe, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 148, Short.MAX_VALUE)
.add(lbl_albumTitel, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(lbl_genreAusgabe, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.add(0, 0, Short.MAX_VALUE))
.add(jPanel8Layout.createSequentialGroup()
.addContainerGap()
.add(jLabel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addContainerGap())
);
jPanel8Layout.setVerticalGroup(
jPanel8Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel8Layout.createSequentialGroup()
.addContainerGap()
.add(jLabel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 140, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(lbl_titelAusgabe, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 16, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(lbl_albumTitel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(lbl_genreAusgabe)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(btn_play)
.addContainerGap())
);
jPanel9.setPreferredSize(new java.awt.Dimension(250, 350));
org.jdesktop.layout.GroupLayout jPanel9Layout = new org.jdesktop.layout.GroupLayout(jPanel9);
jPanel9.setLayout(jPanel9Layout);
jPanel9Layout.setHorizontalGroup(
jPanel9Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 258, Short.MAX_VALUE)
);
jPanel9Layout.setVerticalGroup(
jPanel9Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 350, Short.MAX_VALUE)
);
jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/media/rahmen2.gif"))); // NOI18N
jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/media/rahmen_unten.gif"))); // NOI18N
jLabel3.setText("jLabel3");
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(152, 152, 152)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jLabel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 801, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(layout.createSequentialGroup()
.add(jPanel_music, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jPanel8, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jPanel9, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 258, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(jLabel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 809, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addContainerGap(33, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(32, 32, 32)
.add(jLabel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
.add(org.jdesktop.layout.GroupLayout.LEADING, jPanel8, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.LEADING, jPanel_music, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(jPanel9, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jLabel3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 67, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(55, 55, 55))
);
pack();
}// </editor-fold>
private void btn_playActionPerformed(java.awt.event.ActionEvent evt) {
if (btn_play.getText().equals("Play")) {
mp3Player.play();
btn_play.setText("Stop");
} else {
mp3Player.stop();
btn_play.setText("Play");
}
}
// Variables declaration - do not modify
private javax.swing.JButton btn_play;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JPanel jPanel8;
private javax.swing.JPanel jPanel9;
private javax.swing.JPanel jPanel_music;
private javax.swing.JLabel lbl_albumTitel;
private javax.swing.JLabel lbl_genreAusgabe;
private javax.swing.JLabel lbl_titelAusgabe;
// End of variables declaration
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Gui().setVisible(true);
}
});
}
private void changeBG() {
}
private void los() {
int nRows = 3;
int nCols = 3;
jPanel_music.setLayout(new GridLayout(nRows, nCols));
for (int i = 0; i < nRows; i++) {
for (int j = 0; j < nCols; j++) {
panel = new JPanel();
//panel.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
panel.setForeground(new Color(237,237,237));
panel.setOpaque(true);
panel.setName("x=" + j + ", y=" + i);
panel.setTransferHandler(new MyTransferHandler());
panel.setSize(100, 100);
panel.addMouseListener(this);
jPanel_music.add(panel);
}
}
jPanel_music.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
}
public void mouseClicked(MouseEvent e) {
panel = (JPanel) e.getSource();
System.out.print("Wurde geklickt");
// Reihe 1 -----------------------------------------
// Panel 1, Genre:
if (panel.getName().equals("x=0, y=0")) {
panel.setBackground(new Color(86, 144, 153));
try {
try {
track.getId3Tags();
} catch (IOException ex) {
Logger.getLogger(Gui.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (CannotReadException ex) {
Logger.getLogger(Gui.class.getName()).log(Level.SEVERE, null, ex);
} catch (TagException ex) {
Logger.getLogger(Gui.class.getName()).log(Level.SEVERE, null, ex);
} catch (ReadOnlyFileException ex) {
Logger.getLogger(Gui.class.getName()).log(Level.SEVERE, null, ex);
} catch (InvalidAudioFrameException ex) {
Logger.getLogger(Gui.class.getName()).log(Level.SEVERE, null, ex);
}
this.lbl_titelAusgabe.setText(" " + track.getTitle());
this.lbl_genreAusgabe.setText(" " + track.getGenre());
this.lbl_albumTitel.setText(" " + track.getAlbumTitle());
}
// Panel 2, Genre:
if (panel.getName().equals("x=1, y=0")) {
panel.setBackground(new Color(122, 74, 57));
}
// Panel 3, Genre:
if (panel.getName().equals("x=2, y=0")) {
panel.setBackground(new Color(182, 85, 24));
}
// Reihe 2 -----------------------------------------
if (panel.getName().equals("x=0, y=1")) {
panel.setBackground(new Color(87, 81, 123));
}
if (panel.getName().equals("x=1, y=1")) {
panel.setBackground(new Color(132, 53, 73));
}
if (panel.getName().equals("x=2, y=1")) {
panel.setBackground(new Color(72, 107, 96));
}
// Reihe 3 -----------------------------------------
if (panel.getName().equals("x=0, y=2")) {
panel.setBackground(new Color(82, 75, 38));
}
if (panel.getName().equals("x=1, y=2")) {
panel.setBackground(new Color(138, 105, 124));
}
if (panel.getName().equals("x=2, y=2")) {
panel.setBackground(new Color(180, 148, 0));
}
if(btn_play.getText().equals("Play")){
mp3Player.play();
btn_play.setText("Stop");
}
//--------------------------------------------------
}
public void mousePressed(MouseEvent e) {
System.out.println("MousePressed");
}
public void mouseReleased(MouseEvent e) {
System.out.println("MouseReleased");
}
public void mouseEntered(MouseEvent e) {
panel = (JPanel) e.getSource();
if (panel.getName().equals("x=0, y=0")) {
panel.setBackground(new Color(86, 144, 153));
}
if (panel.getName().equals("x=1, y=0")) {
panel.setBackground(new Color(122, 74, 57));
}
if (panel.getName().equals("x=2, y=0")) {
panel.setBackground(new Color(182, 85, 24));
}
//---------------------------------------------------
if (panel.getName().equals("x=0, y=1")) {
panel.setBackground(new Color(87, 81, 123));
}
if (panel.getName().equals("x=1, y=1")) {
panel.setBackground(new Color(132, 53, 73));
}
if (panel.getName().equals("x=2, y=1")) {
panel.setBackground(new Color(72, 107, 96));
}
//--------------------------------------------------
if (panel.getName().equals("x=0, y=2")) {
panel.setBackground(new Color(82, 75, 38));
}
if (panel.getName().equals("x=1, y=2")) {
panel.setBackground(new Color(138, 105, 124));
}
if (panel.getName().equals("x=2, y=2")) {
panel.setBackground(new Color(180, 148, 0));
}
//--------------------------------------------------
}
public void mouseExited(MouseEvent e) {
((JPanel) e.getSource()).setBackground(new Color(237, 237, 237));
}
@Override
public void dragEnter(DropTargetDragEvent dtde) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void dragOver(DropTargetDragEvent dtde) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void dropActionChanged(DropTargetDragEvent dtde) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void dragExit(DropTargetEvent dte) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void drop(DropTargetDropEvent dtde) {
throw new UnsupportedOperationException("Not supported yet.");
}
}