package metrobotics; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Font; import java.util.ArrayList; import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingConstants; import javax.swing.border.EtchedBorder; /** * @author Pablo Munoz - Metrobotics * This class contains the buttons that trigger behaviors. * TODO: Only one behavior is enabled, SQUARE but it only works when the GUI is talking * directly to Player. FIX THIS. * */ public class Behaviors extends JPanel { ArrayList<Robot> robots; Robot inUse; private JLabel titleBehavior, squareBehavior, swarmBehavior, findObjectBehavior, gotoBehavior, localizeBehavior, objectRecogNN; Behaviors(final ArrayList<Robot> robots){ super(); this.robots = robots; setBackground(Color.gray); // Toolkit tk = Toolkit.getDefaultToolkit(); int Width = 200; //(int)(tk.getScreenSize().getWidth() * 0.05); int Height = 350; //(int)(tk.getScreenSize().getHeight() * 1); Dimension d = new Dimension(Width, Height); setPreferredSize(d); setBorder(BorderFactory.createRaisedBevelBorder()); setLayout(new FlowLayout()); titleBehavior = new JLabel(); Dimension dim = new Dimension(Width, 30); titleBehavior.setPreferredSize(dim); titleBehavior.setHorizontalAlignment(SwingConstants.CENTER); titleBehavior.setFont(new Font("SansSerif", Font.BOLD, 26)); titleBehavior.setText("BEHAVIORS"); add(titleBehavior); Color backGBeh = new Color(255, 255, 255); squareBehavior = new JLabel("SQUARE"); squareBehavior.setPreferredSize(dim); squareBehavior.setHorizontalAlignment(SwingConstants.CENTER); squareBehavior.setOpaque(true); squareBehavior.setBackground(backGBeh); squareBehavior.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED)); //squareBehavior.addMouseListener(new doSquare(robots)); add(squareBehavior); swarmBehavior = new JLabel("SWARM"); swarmBehavior.setPreferredSize(dim); swarmBehavior.setHorizontalAlignment(SwingConstants.CENTER); swarmBehavior.setOpaque(true); swarmBehavior.setBackground(backGBeh); swarmBehavior.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED)); //swarmBehavior.addMouseListener(null); add(swarmBehavior); findObjectBehavior = new JLabel("FIND OBJECT"); findObjectBehavior.setPreferredSize(dim); findObjectBehavior.setHorizontalAlignment(SwingConstants.CENTER); findObjectBehavior.setOpaque(true); findObjectBehavior.setBackground(backGBeh); findObjectBehavior.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED)); //findObjectBehavior.addMouseListener(null); add(findObjectBehavior); gotoBehavior = new JLabel("GO TO LOCATION"); gotoBehavior.setPreferredSize(dim); gotoBehavior.setHorizontalAlignment(SwingConstants.CENTER); gotoBehavior.setOpaque(true); gotoBehavior.setBackground(backGBeh); gotoBehavior.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED)); //gotoBehavior.addMouseListener(null); add(gotoBehavior); localizeBehavior = new JLabel("LOCALIZE"); localizeBehavior.setPreferredSize(dim); localizeBehavior.setHorizontalAlignment(SwingConstants.CENTER); localizeBehavior.setOpaque(true); localizeBehavior.setBackground(backGBeh); localizeBehavior.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED)); //localizeBehavior.addMouseListener(null); add(localizeBehavior); objectRecogNN = new JLabel("OBJECT RECOG. NEURAL NET"); objectRecogNN.setPreferredSize(dim); objectRecogNN.setHorizontalAlignment(SwingConstants.CENTER); objectRecogNN.setOpaque(true); objectRecogNN.setBackground(backGBeh); objectRecogNN.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED)); //objectRecogNN.addMouseListener(null); add(objectRecogNN); } }