Advertisement
Guest User

GUI

a guest
Oct 1st, 2014
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.59 KB | None | 0 0
  1. import java.awt.Button;
  2. import java.awt.Color;
  3. import java.awt.Dimension;
  4. import java.awt.Font;
  5. import java.awt.Frame;
  6. import java.awt.Label;
  7. import java.awt.Point;
  8. import java.awt.event.ActionEvent;
  9. import java.awt.event.ActionListener;
  10. import java.awt.event.WindowAdapter;
  11. import java.awt.event.WindowEvent;
  12. import java.util.ArrayList;
  13.  
  14.  
  15. import de.szut.ita13.sommerfeld.audio.AudioButton;
  16.  
  17.  
  18. public class GUI extends Frame {
  19.  
  20.     private static final long serialVersionUID = 1L;
  21.     public static final String TITLE = "EpicSoundboard v1.0";
  22.    
  23.     public static ArrayList<AudioButton> audioButtons;
  24.     public static Button editAudioButton;
  25.     public static Button removeAudioButton;
  26.     public static boolean EDITABLE = false;
  27.     public static boolean REMOVABLE = false;
  28.     public static final String NO_FILE = "NICHT BELEGT";
  29.    
  30.     public static final int BUTTON_IN_A_ROW = 3;
  31.     public static final int DISTANCE_BUTTON_TOP = 10;
  32.     public static final int DISTANCE_BUTTON_SIDE = 5;
  33.     public static final int DISTANCE_TOP = 100;
  34.     public static final int DISTANCE_SIDE = 30;
  35.     public static final int NUMBER_OF_BUTTONS_PER_SIDE = 30;
  36.    
  37.     public static final Font mainFont = new Font("Arial",Font.CENTER_BASELINE,30);
  38.     public static final Font counterLabelFont = new Font("Comic Sans", Font.CENTER_BASELINE, 12);
  39.    
  40.     public Label label;
  41.     public static final String NO_PLAYED = "0";
  42.    
  43.     public GUI() {
  44.         setTitle(TITLE);
  45.         setSize(new Dimension(660,800));
  46.         setLocation(new Point(100,100));
  47.         setLayout(null);
  48.         addWindowListener(new WindowAdapter() {
  49.             public void windowClosing(WindowEvent we) {
  50.                 System.exit(0);
  51.             }
  52.         });
  53.         setResizable(false);
  54.        
  55.         label = new Label("ITA13 Soundboard");
  56.         label.setFont(mainFont);
  57.         label.setSize(new Dimension(275, 50));
  58.         label.setLocation(new Point(getWidth() / 2 - label.getWidth() / 2, 25));
  59.         label.setVisible(true);
  60.        
  61.        
  62.         editAudioButton = new Button("Edit");
  63.         editAudioButton.setForeground(Color.RED);
  64.         editAudioButton.setSize(new Dimension(50,25));
  65.         editAudioButton.setLocation(new Point(this.getWidth() - editAudioButton.getWidth(), this.getHeight() - editAudioButton.getHeight()));
  66.         editAudioButton.addActionListener(new ActionListener() {
  67.             public void actionPerformed(ActionEvent e) {
  68.                 if(AudioButton.hasAudioButtonWithAudioFile(audioButtons)) {
  69.                     EDITABLE = (EDITABLE) ? false : true;
  70.                     if(EDITABLE) editAudioButton.setForeground(Color.GREEN);
  71.                     else editAudioButton.setForeground(Color.RED);
  72.                     for(int i = 0; i < audioButtons.size(); i++) {
  73.                         if(audioButtons.get(i).hasAudioFile()) {
  74.                             audioButtons.get(i).setEditable(EDITABLE);
  75.                         }
  76.                     }
  77.                 }
  78.             }
  79.         });
  80.         this.add(editAudioButton);
  81.        
  82.        
  83.         removeAudioButton = new Button("Remove");
  84.         removeAudioButton.setForeground(Color.RED);
  85.         removeAudioButton.setSize(new Dimension(50,25));
  86.         removeAudioButton.setLocation(new Point(editAudioButton.getX() - removeAudioButton.getWidth(), this.getHeight() - removeAudioButton.getHeight()));
  87.         removeAudioButton.addActionListener(new ActionListener() {
  88.             public void actionPerformed(ActionEvent e) {
  89.                 if(!EDITABLE && AudioButton.hasAudioButtonWithAudioFile(audioButtons)) {
  90.                     REMOVABLE = (REMOVABLE) ? false : true;
  91.                     if(REMOVABLE) removeAudioButton.setForeground(Color.GREEN);
  92.                     else removeAudioButton.setForeground(Color.RED);
  93.                     for(int i = 0; i < audioButtons.size(); i++) {
  94.                         if(audioButtons.get(i).hasAudioFile()) {
  95.                             audioButtons.get(i).setRemovable(REMOVABLE);
  96.                         }
  97.                     }
  98.                 }
  99.             }
  100.         });
  101.         this.add(removeAudioButton);
  102.                    
  103.         audioButtons = new ArrayList<AudioButton>();
  104.        
  105.         for(int i = 0; i < NUMBER_OF_BUTTONS_PER_SIDE; i++) {
  106.             AudioButton audioButton = new AudioButton(NO_FILE);
  107.             audioButton.setSize(new Dimension(200,50));
  108.             audioButton.setLocation(new Point(DISTANCE_SIDE + audioButton.getWidth() * (i % BUTTON_IN_A_ROW) + (DISTANCE_BUTTON_SIDE * (i % BUTTON_IN_A_ROW)), DISTANCE_TOP + audioButton.getHeight() * (i / BUTTON_IN_A_ROW) + (DISTANCE_BUTTON_TOP * (i / BUTTON_IN_A_ROW))));
  109.             Label counterLabel = new Label(NO_PLAYED);
  110.             counterLabel.setFont(counterLabelFont);
  111.             counterLabel.setSize(new Dimension(audioButton.getWidth() , DISTANCE_BUTTON_TOP));
  112.             counterLabel.setLocation(new Point(audioButton.getX(), audioButton.getY() - counterLabel.getHeight()));
  113.             audioButton.setCounterLabel(counterLabel);
  114.             audioButton.getCounterLabel().setVisible(true);
  115.             audioButton.setVisible(true);
  116.             audioButtons.add(audioButton);
  117.         }
  118.        
  119.         for(AudioButton aButton : audioButtons) {
  120.             this.add(aButton);
  121.             this.add(aButton.getCounterLabel());
  122.         }
  123.        
  124.         this.add(label);
  125.     }
  126.  
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement