rendered paste bodypackage program6;import java.awt.BorderLayout;import java.awt.Component;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import javax.swing.table.JTableHeader;import javax.swing.table.TableColumn;import javax.swing.table.TableColumnModel;import program5.ID3Tag;public class ID3TagGUI extends ID3TagDisplay implements ActionListener{ private static final long serialVersionUID = 1L; public Playlist pl; public ID3TagGUI(Playlist pl){ super(); this.pl = pl; FlowLayout fl = new FlowLayout(); JButton open = new JButton("Open"); JButton close = new JButton("Close"); JButton search = new JButton("Search"); JTextField jtf = new JTextField(20); JPanel jp = new JPanel(); JPanel jp1 = new JPanel(fl); fileChooser(); this.add(jp1, BorderLayout.SOUTH); this.add(jp, BorderLayout.NORTH); jp.add(tableLayout()); jp1.add(open); jp1.add(close); jp1.add(jtf); jp1.add(search); jtf.addActionListener(this); open.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ fileChooser(); } }); close.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ System.exit(1); } }); search.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ e.getSource() } }); jp.repaint(); jp1.repaint(); } public Component tableLayout(){ String[] str = new String[Playlist.Type.values().length -1]; int counter = 0; for(Playlist.Type type : Playlist.Type.values()){ if(!type.equals(Playlist.Type.RANDOMIZED)){ str[counter] = type.toString(); counter++; } } String[][] spreadsheet = new String[pl.getLength()][Playlist.Type.values().length]; ID3Tag[] itag = pl.toArray(); for(int y = 0; y < pl.getLength(); y++){ spreadsheet[y][0] = itag[y].getField(ID3Tag.ID3Field.TPE1);//artist spreadsheet[y][1] = itag[y].getField(ID3Tag.ID3Field.TIT2);//title spreadsheet[y][2] = itag[y].getField(ID3Tag.ID3Field.TALB);//album spreadsheet[y][3] = itag[y].getField(ID3Tag.ID3Field.TLEN);//length spreadsheet[y][4] = itag[y].getField(ID3Tag.ID3Field.TMED);//genre //System.out.println(itag[y].getField(ID3Tag.ID3Field.TPE1)); } JTable table = new JTable(spreadsheet, str); TableColumnModel tcm = table.getColumnModel(); JTableButtonRenderer jbr = new JTableButtonRenderer(); TableColumn tc; for(int i = 0; i < spreadsheet[0].length - 1; i++){ tc = tcm.getColumn(i); tc.setHeaderRenderer(jbr); table.repaint(); } JTableHeader jh = table.getTableHeader(); jh.addMouseListener(new MyMouseAdapter(jh, jbr)); jh.setPreferredSize(new Dimension(75, 25)); table.setPreferredScrollableViewportSize(new Dimension(800, 600)); table.repaint(); return new JScrollPane(table); } public void fileChooser(){ JFileChooser chooser = new JFileChooser(); chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); int returnVal = chooser.showOpenDialog(this); if(returnVal == JFileChooser.APPROVE_OPTION){ pl.add(chooser.getSelectedFile()); } } public static void main(String[] args) { new ID3TagGUI(new MusicSelection()).setVisible(true); } public void actionPerformed(ActionEvent e) { pl.search(((JTextField)e.getSource()).getText()); }}