/* This file is part of jpcsp. Jpcsp is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Jpcsp is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Jpcsp. If not, see <http://www.gnu.org/licenses/>. */ package jpcsp.GUI; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.EnumMap; import java.util.Map; import javax.swing.JTextField; import javax.swing.ComboBoxModel; import javax.swing.DefaultComboBoxModel; import javax.swing.MutableComboBoxModel; import jpcsp.Emulator; import jpcsp.State; import jpcsp.Controller.keyCode; import jpcsp.WindowPropSaver; import jpcsp.settings.Settings; import net.java.games.input.Component; import net.java.games.input.Controller; import net.java.games.input.ControllerEnvironment; import net.java.games.input.Event; import net.java.games.input.EventQueue; import net.java.games.input.Component.Identifier; import net.java.games.input.Component.Identifier.Axis; import net.java.games.input.Component.Identifier.Button; public class ControlsGUI extends javax.swing.JFrame implements KeyListener { private static final long serialVersionUID = -732715495873159718L; public static final String identifierForConfig = "controlsGUI"; private boolean getKey = false; private JTextField sender; private keyCode targetKey; private Map<Integer, keyCode> currentKeys; private Map<keyCode, Integer> revertKeys; private Map<keyCode, String> currentController; private ControllerPollThread controllerPollThread; private static final int maxControllerFieldValueLength = 9; private class ControllerPollThread extends Thread { volatile protected boolean exit = false; @Override public void run() { while (!exit) { Controller controller = getSelectedController(); if (controller != null && controller.poll()) { EventQueue eventQueue = controller.getEventQueue(); Event event = new Event(); while (eventQueue.getNextEvent(event)) { onControllerEvent(event); } } // Wait a little bit before polling again... try { Thread.sleep(10); } catch (InterruptedException e) { // Ignore exception } } } } public ControlsGUI() { initComponents(); loadKeys(); Controller controller = jpcsp.Controller.getInstance().getInputController(); if (controller != null) { for (int i = 0; i < controllerBox.getItemCount(); i++) { if (controller == controllerBox.getItemAt(i)) { controllerBox.setSelectedIndex(i); break; } } } setFields(); fieldCircle.addKeyListener(this); fieldCross.addKeyListener(this); fieldDown.addKeyListener(this); fieldLTrigger.addKeyListener(this); fieldLeft.addKeyListener(this); fieldRTrigger.addKeyListener(this); fieldRight.addKeyListener(this); fieldSelect.addKeyListener(this); fieldSquare.addKeyListener(this); fieldStart.addKeyListener(this); fieldTriangle.addKeyListener(this); fieldUp.addKeyListener(this); fieldHome.addKeyListener(this); fieldScreen.addKeyListener(this); fieldMusic.addKeyListener(this); fieldVolPlus.addKeyListener(this); fieldVolMin.addKeyListener(this); fieldHold.addKeyListener(this); fieldAnalogUp.addKeyListener(this); fieldAnalogDown.addKeyListener(this); fieldAnalogLeft.addKeyListener(this); fieldAnalogRight.addKeyListener(this); controllerBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { onControllerChange(); } }); controllerPollThread = new ControllerPollThread(); controllerPollThread.setName("Controller Poll Thread"); controllerPollThread.setDaemon(true); controllerPollThread.start(); WindowPropSaver.loadWindowProperties(this); } @Override public void dispose() { if (controllerPollThread != null) { controllerPollThread.exit = true; } Emulator.getMainGUI().endWindowDialog(); super.dispose(); } private void onControllerChange() { setFields(); } private Controller getSelectedController() { if (controllerBox != null) { int controllerIndex = controllerBox.getSelectedIndex(); ControllerEnvironment ce = ControllerEnvironment.getDefaultEnvironment(); Controller[] controllers = ce.getControllers(); if (controllers != null && controllerIndex >= 0 && controllerIndex < controllers.length) { return controllers[controllerIndex]; } } return null; } private void loadKeys() { currentKeys = Settings.getInstance().loadKeys(); revertKeys = new EnumMap<keyCode, Integer>(keyCode.class); for (Map.Entry<Integer, keyCode> entry : currentKeys.entrySet()) { revertKeys.put(entry.getValue(), entry.getKey()); } currentController = Settings.getInstance().loadController(); } private void setFieldValue(keyCode key, String value) { switch (key) { case DOWN: fieldDown.setText(value); break; case UP: fieldUp.setText(value); break; case LEFT: fieldLeft.setText(value); break; case RIGHT: fieldRight.setText(value); break; case LANDOWN: fieldAnalogDown.setText(value); break; case LANUP: fieldAnalogUp.setText(value); break; case LANLEFT: fieldAnalogLeft.setText(value); break; case LANRIGHT: fieldAnalogRight.setText(value); break; case TRIANGLE: fieldTriangle.setText(value); break; case SQUARE: fieldSquare.setText(value); break; case CIRCLE: fieldCircle.setText(value); break; case CROSS: fieldCross.setText(value); break; case L1: fieldLTrigger.setText(value); break; case R1: fieldRTrigger.setText(value); break; case START: fieldStart.setText(value); break; case SELECT: fieldSelect.setText(value); break; case HOME: fieldHome.setText(value); break; case HOLD: fieldHold.setText(value); break; case VOLMIN: fieldVolMin.setText(value); break; case VOLPLUS: fieldVolPlus.setText(value); break; case SCREEN: fieldScreen.setText(value); break; case MUSIC: fieldMusic.setText(value); break; case RELEASED: break; } } private void setFields() { if (jpcsp.Controller.isKeyboardController(getSelectedController())) { for (Map.Entry<Integer, keyCode> entry : currentKeys.entrySet()) { setFieldValue(entry.getValue(), KeyEvent.getKeyText(entry.getKey())); } } else { for (Map.Entry<keyCode, String> entry : currentController.entrySet()) { String identifierName = entry.getValue(); setFieldValue(entry.getKey(), getControllerFieldText(identifierName)); } } } @Override public void keyTyped(KeyEvent arg0) { } @Override public void keyReleased(KeyEvent arg0) { } @Override public void keyPressed(KeyEvent arg0) { if (!getKey) { return; } getKey = false; int pressedKey = arg0.getKeyCode(); keyCode k = currentKeys.get(pressedKey); if (k != null) { Emulator.log.warn("Key already used for " + k); sender.setText(KeyEvent.getKeyText(revertKeys.get(targetKey))); return; } int oldMapping = revertKeys.get(targetKey); revertKeys.remove(targetKey); currentKeys.remove(oldMapping); currentKeys.put(pressedKey, targetKey); revertKeys.put(targetKey, pressedKey); sender.setText(KeyEvent.getKeyText(pressedKey)); getKey = false; } private void setKey(JTextField sender, keyCode targetKey) { if (getKey) { this.sender.setText(KeyEvent.getKeyText(revertKeys.get(this.targetKey))); } sender.setText("PressKey"); getKey = true; this.sender = sender; this.targetKey = targetKey; } private void setControllerMapping(keyCode targetKey, String identifierName, JTextField field) { currentController.put(targetKey, identifierName); field.setText(getControllerFieldText(identifierName)); getKey = false; } private Component getControllerComponent(String identifierName) { Controller controller = getSelectedController(); if (controller == null) { return null; } Component[] components = controller.getComponents(); if (components == null) { return null; } for (int i = 0; i < components.length; i++) { if (identifierName.equals(components[i].getIdentifier().getName())) { return components[i]; } } return null; } private String getControllerFieldText(String identifierName) { Component component = getControllerComponent(identifierName); if (component == null) { return identifierName; } String name = component.getName(); if (name == null) { // Use the Identifier name if the component has no name name = identifierName; } else if (name.length() > maxControllerFieldValueLength && identifierName.length() < name.length()) { // Use the Identifier name if the component name is too long to fit // into the display field name = identifierName; } return name; } private void onControllerEvent(Event event) { if (!getKey) { return; } Component component = event.getComponent(); float value = event.getValue(); Identifier identifier = component.getIdentifier(); String identifierName = identifier.getName(); if (identifier instanceof Button && value == 1.f) { setControllerMapping(targetKey, identifierName, sender); } else if (identifier == Axis.POV) { switch (targetKey) { case DOWN: case UP: case LEFT: case RIGHT: setControllerMapping(keyCode.DOWN, identifierName, fieldDown); setControllerMapping(keyCode.UP, identifierName, fieldUp); setControllerMapping(keyCode.LEFT, identifierName, fieldLeft); setControllerMapping(keyCode.RIGHT, identifierName, fieldRight); break; default: jpcsp.Controller.log.warn(String.format("Unknown Controller POV Event on %s(%s): %f for %s", component.getName(), identifier.getName(), value, targetKey.toString())); break; } } else if (identifier instanceof Axis && !jpcsp.Controller.isInDeadZone(component, value)) { switch (targetKey) { case DOWN: case UP: setControllerMapping(keyCode.DOWN, identifierName, fieldDown); setControllerMapping(keyCode.UP, identifierName, fieldUp); break; case LEFT: case RIGHT: setControllerMapping(keyCode.LEFT, identifierName, fieldLeft); setControllerMapping(keyCode.RIGHT, identifierName, fieldRight); break; case LANDOWN: case LANUP: setControllerMapping(keyCode.LANDOWN, identifierName, fieldAnalogDown); setControllerMapping(keyCode.LANUP, identifierName, fieldAnalogUp); break; case LANLEFT: case LANRIGHT: setControllerMapping(keyCode.LANLEFT, identifierName, fieldAnalogLeft); setControllerMapping(keyCode.LANRIGHT, identifierName, fieldAnalogRight); break; default: setControllerMapping(targetKey, identifierName, sender); break; } } else { if (identifier instanceof Axis && jpcsp.Controller.isInDeadZone(component, value)) { jpcsp.Controller.log.debug(String.format("Unknown Controller Event in DeadZone on %s(%s): %f for %s", component.getName(), identifier.getName(), value, targetKey.toString())); } else { jpcsp.Controller.log.warn(String.format("Unknown Controller Event on %s(%s): %f for %s", component.getName(), identifier.getName(), value, targetKey.toString())); } } } public ComboBoxModel makeControllerComboBoxModel() { MutableComboBoxModel comboBox = new DefaultComboBoxModel(); ControllerEnvironment ce = ControllerEnvironment.getDefaultEnvironment(); Controller[] controllers = ce.getControllers(); for (Controller c : controllers) { comboBox.addElement(c); } return comboBox; } /** * 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. */ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; controllerLabel = new javax.swing.JLabel(); controllerBox = new javax.swing.JComboBox(); keyPanel = new javax.swing.JPanel(); fgPanel = new javax.swing.JPanel(); fieldStart = new javax.swing.JTextField(); fieldSelect = new javax.swing.JTextField(); fieldCross = new javax.swing.JTextField(); fieldCircle = new javax.swing.JTextField(); fieldTriangle = new javax.swing.JTextField(); fieldSquare = new javax.swing.JTextField(); fieldRight = new javax.swing.JTextField(); fieldUp = new javax.swing.JTextField(); fieldLeft = new javax.swing.JTextField(); fieldDown = new javax.swing.JTextField(); fieldHold = new javax.swing.JTextField(); fieldHome = new javax.swing.JTextField(); fieldVolMin = new javax.swing.JTextField(); fieldVolPlus = new javax.swing.JTextField(); fieldLTrigger = new javax.swing.JTextField(); fieldRTrigger = new javax.swing.JTextField(); fieldScreen = new javax.swing.JTextField(); fieldMusic = new javax.swing.JTextField(); fieldAnalogUp = new javax.swing.JTextField(); fieldAnalogDown = new javax.swing.JTextField(); fieldAnalogLeft = new javax.swing.JTextField(); fieldAnalogRight = new javax.swing.JTextField(); bgLabel1 = new javax.swing.JLabel(); jButtonOK = new javax.swing.JButton(); cancelButton = new jpcsp.GUI.CancelButton(); java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("jpcsp/languages/jpcsp"); // NOI18N setTitle(bundle.getString("ControlsGUI.title")); // NOI18N setResizable(false); controllerLabel.setText(bundle.getString("ControlsGUI.controllerLabel.text")); // NOI18N controllerBox.setModel(makeControllerComboBoxModel()); keyPanel.setBackground(new java.awt.Color(255, 255, 255)); keyPanel.setMinimumSize(new java.awt.Dimension(1, 1)); keyPanel.setLayout(new java.awt.GridBagLayout()); fgPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED)); fgPanel.setOpaque(false); fgPanel.setPreferredSize(new java.awt.Dimension(614, 312)); fieldStart.setEditable(false); fieldStart.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldStart.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldStart.setText("Enter"); // NOI18N fieldStart.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldStart.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldStart.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldStartMouseClicked(evt); } }); fieldSelect.setEditable(false); fieldSelect.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldSelect.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldSelect.setText("Space"); // NOI18N fieldSelect.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldSelect.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldSelect.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldSelectMouseClicked(evt); } }); fieldCross.setEditable(false); fieldCross.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldCross.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldCross.setText("S"); // NOI18N fieldCross.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldCross.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldCross.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldCrossMouseClicked(evt); } }); fieldCircle.setEditable(false); fieldCircle.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldCircle.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldCircle.setText("D"); // NOI18N fieldCircle.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldCircle.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldCircle.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldCircleMouseClicked(evt); } }); fieldTriangle.setEditable(false); fieldTriangle.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldTriangle.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldTriangle.setText("W"); // NOI18N fieldTriangle.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldTriangle.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldTriangle.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldTriangleMouseClicked(evt); } }); fieldSquare.setEditable(false); fieldSquare.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldSquare.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldSquare.setText("A"); // NOI18N fieldSquare.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldSquare.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldSquare.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldSquareMouseClicked(evt); } }); fieldRight.setEditable(false); fieldRight.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldRight.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldRight.setText("Right"); // NOI18N fieldRight.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldRight.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldRight.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldRightMouseClicked(evt); } }); fieldUp.setEditable(false); fieldUp.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldUp.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldUp.setText("Up"); // NOI18N fieldUp.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldUp.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldUp.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldUpMouseClicked(evt); } }); fieldLeft.setEditable(false); fieldLeft.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldLeft.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldLeft.setText("Left"); // NOI18N fieldLeft.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldLeft.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldLeft.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldLeftMouseClicked(evt); } }); fieldDown.setEditable(false); fieldDown.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldDown.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldDown.setText("Down"); // NOI18N fieldDown.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldDown.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldDown.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldDownMouseClicked(evt); } }); fieldHold.setEditable(false); fieldHold.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldHold.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldHold.setText("O"); // NOI18N fieldHold.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldHold.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldHold.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldHoldMouseClicked(evt); } }); fieldHome.setEditable(false); fieldHome.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldHome.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldHome.setText("H"); // NOI18N fieldHome.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldHome.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldHome.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldHomeMouseClicked(evt); } }); fieldVolMin.setEditable(false); fieldVolMin.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldVolMin.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldVolMin.setText("-"); // NOI18N fieldVolMin.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldVolMin.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldVolMin.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldVolMinMouseClicked(evt); } }); fieldVolPlus.setEditable(false); fieldVolPlus.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldVolPlus.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldVolPlus.setText("+"); // NOI18N fieldVolPlus.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldVolPlus.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldVolPlus.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldVolPlusMouseClicked(evt); } }); fieldLTrigger.setEditable(false); fieldLTrigger.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldLTrigger.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldLTrigger.setText("Q"); // NOI18N fieldLTrigger.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldLTrigger.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true)); fieldLTrigger.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldLTriggerMouseClicked(evt); } }); fieldRTrigger.setEditable(false); fieldRTrigger.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldRTrigger.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldRTrigger.setText("E"); // NOI18N fieldRTrigger.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldRTrigger.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldRTrigger.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldRTriggerMouseClicked(evt); } }); fieldScreen.setEditable(false); fieldScreen.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldScreen.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldScreen.setText("N"); // NOI18N fieldScreen.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldScreen.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldScreen.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldScreenMouseClicked(evt); } }); fieldMusic.setEditable(false); fieldMusic.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldMusic.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldMusic.setText("M"); // NOI18N fieldMusic.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldMusic.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldMusic.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldMusicMouseClicked(evt); } }); fieldAnalogUp.setEditable(false); fieldAnalogUp.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldAnalogUp.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldAnalogUp.setText("I"); // NOI18N fieldAnalogUp.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldAnalogUp.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldAnalogUp.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldAnalogUpMouseClicked(evt); } }); fieldAnalogDown.setEditable(false); fieldAnalogDown.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldAnalogDown.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldAnalogDown.setText("K"); // NOI18N fieldAnalogDown.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldAnalogDown.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldAnalogDown.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldAnalogDownMouseClicked(evt); } }); fieldAnalogLeft.setEditable(false); fieldAnalogLeft.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldAnalogLeft.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldAnalogLeft.setText("J"); // NOI18N fieldAnalogLeft.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldAnalogLeft.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldAnalogLeft.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldAnalogLeftMouseClicked(evt); } }); fieldAnalogRight.setEditable(false); fieldAnalogRight.setFont(new java.awt.Font("Courier New", 1, 12)); // NOI18N fieldAnalogRight.setHorizontalAlignment(javax.swing.JTextField.CENTER); fieldAnalogRight.setText("L"); // NOI18N fieldAnalogRight.setToolTipText(bundle.getString("ControlsGUI.fieldPutKey.text")); // NOI18N fieldAnalogRight.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 102, 102), 1, true)); fieldAnalogRight.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fieldAnalogRightMouseClicked(evt); } }); javax.swing.GroupLayout fgPanelLayout = new javax.swing.GroupLayout(fgPanel); fgPanel.setLayout(fgPanelLayout); fgPanelLayout.setHorizontalGroup( fgPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, fgPanelLayout.createSequentialGroup() .addGroup(fgPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(fgPanelLayout.createSequentialGroup() .addComponent(fieldAnalogLeft, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(fieldAnalogRight, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(fgPanelLayout.createSequentialGroup() .addGap(35, 35, 35) .addGroup(fgPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(fgPanelLayout.createSequentialGroup() .addComponent(fieldAnalogDown, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(89, 89, 89) .addComponent(fieldVolMin, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(46, 46, 46)) .addGroup(fgPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(fieldAnalogUp, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(fgPanelLayout.createSequentialGroup() .addGap(103, 103, 103) .addComponent(fieldHome, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(32, 32, 32) .addComponent(fieldVolPlus, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)))))) .addGroup(fgPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(fgPanelLayout.createSequentialGroup() .addGap(35, 35, 35) .addComponent(fieldScreen, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, fgPanelLayout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 76, Short.MAX_VALUE) .addGroup(fgPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, fgPanelLayout.createSequentialGroup() .addComponent(fieldMusic, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(194, 194, 194)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, fgPanelLayout.createSequentialGroup() .addComponent(fieldSelect, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(72, 72, 72)))))) .addGroup(fgPanelLayout.createSequentialGroup() .addContainerGap() .addGroup(fgPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, fgPanelLayout.createSequentialGroup() .addComponent(fieldDown, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(fieldCross, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(fgPanelLayout.createSequentialGroup() .addComponent(fieldLTrigger, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(fieldRTrigger, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, fgPanelLayout.createSequentialGroup() .addComponent(fieldLeft, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(fieldCircle, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(fgPanelLayout.createSequentialGroup() .addComponent(fieldRight, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(fieldSquare, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, fgPanelLayout.createSequentialGroup() .addComponent(fieldUp, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(fieldTriangle, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, fgPanelLayout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) .addComponent(fieldHold, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap()) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, fgPanelLayout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(fieldStart, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(39, 39, 39)) ); fgPanelLayout.setVerticalGroup( fgPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(fgPanelLayout.createSequentialGroup() .addGap(7, 7, 7) .addGroup(fgPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(fieldLTrigger, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(fieldRTrigger, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(fgPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(fgPanelLayout.createSequentialGroup() .addGap(18, 18, 18) .addComponent(fieldRight, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(14, 14, 14) .addComponent(fieldUp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(fgPanelLayout.createSequentialGroup() .addGap(24, 24, 24) .addComponent(fieldSquare, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(fieldTriangle, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(fgPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(fieldLeft, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(fieldCircle, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(fgPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(fgPanelLayout.createSequentialGroup() .addGroup(fgPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(fgPanelLayout.createSequentialGroup() .addGap(12, 12, 12) .addComponent(fieldDown, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(82, 82, 82) .addComponent(fieldAnalogUp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(fgPanelLayout.createSequentialGroup() .addGap(50, 50, 50) .addComponent(fieldHold, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(fieldStart, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(fieldSelect, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(fgPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(fgPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(fieldAnalogRight, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(fieldHome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(fieldVolPlus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(fieldAnalogLeft, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(fgPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(fieldAnalogDown, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(fieldVolMin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(33, Short.MAX_VALUE)) .addGroup(fgPanelLayout.createSequentialGroup() .addGap(13, 13, 13) .addComponent(fieldCross, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(fieldMusic, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(fieldScreen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(36, 36, 36)))) ); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.ipadx = 10; gridBagConstraints.ipady = 12; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; keyPanel.add(fgPanel, gridBagConstraints); bgLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); bgLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/jpcsp/images/controls.jpg"))); // NOI18N bgLabel1.setVerticalAlignment(javax.swing.SwingConstants.TOP); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; keyPanel.add(bgLabel1, gridBagConstraints); jButtonOK.setText(bundle.getString("OkButton.text")); // NOI18N jButtonOK.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonOKActionPerformed(evt); } }); cancelButton.setText(bundle.getString("CancelButton.text")); // NOI18N cancelButton.setParent(this); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap(158, Short.MAX_VALUE) .addComponent(controllerLabel) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(controllerBox, javax.swing.GroupLayout.PREFERRED_SIZE, 209, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(193, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jButtonOK, javax.swing.GroupLayout.PREFERRED_SIZE, 88, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(cancelButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap()) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(keyPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap())) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(controllerBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(controllerLabel)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 343, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(cancelButton, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jButtonOK)) .addContainerGap()) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(46, 46, 46) .addComponent(keyPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(46, 46, 46))) ); pack(); }// </editor-fold>//GEN-END:initComponents private void jButtonOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonOKActionPerformed Settings.getInstance().writeKeys(currentKeys); Settings.getInstance().writeController(currentController); String controllerName = controllerBox.getSelectedItem().toString(); Settings.getInstance().writeString("controller.controllerName", controllerName); // Index when several controllers have the same name: // 0 refers to the first controller with the given name, 1, to the second... int controllerNameIndex = 0; int selectedIndex = controllerBox.getSelectedIndex(); for (int i = 0; i < controllerBox.getItemCount(); i++) { if (controllerName.equals(controllerBox.getItemAt(i).toString())) { if (i < selectedIndex) { controllerNameIndex++; } else { break; } } } Settings.getInstance().writeString("controller.controllerNameIndex", String.valueOf(controllerNameIndex)); State.controller.setInputControllerIndex(controllerBox.getSelectedIndex()); State.controller.loadKeyConfig(currentKeys); State.controller.loadControllerConfig(currentController); dispose(); }//GEN-LAST:event_jButtonOKActionPerformed private void fieldAnalogRightMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldAnalogRightMouseClicked setKey(fieldAnalogRight, keyCode.LANRIGHT); }//GEN-LAST:event_fieldAnalogRightMouseClicked private void fieldAnalogLeftMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldAnalogLeftMouseClicked setKey(fieldAnalogLeft, keyCode.LANLEFT); }//GEN-LAST:event_fieldAnalogLeftMouseClicked private void fieldAnalogDownMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldAnalogDownMouseClicked setKey(fieldAnalogDown, keyCode.LANDOWN); }//GEN-LAST:event_fieldAnalogDownMouseClicked private void fieldAnalogUpMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldAnalogUpMouseClicked setKey(fieldAnalogUp, keyCode.LANUP); }//GEN-LAST:event_fieldAnalogUpMouseClicked private void fieldMusicMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldMusicMouseClicked setKey(fieldMusic, keyCode.MUSIC); }//GEN-LAST:event_fieldMusicMouseClicked private void fieldScreenMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldScreenMouseClicked setKey(fieldScreen, keyCode.SCREEN); }//GEN-LAST:event_fieldScreenMouseClicked private void fieldRTriggerMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldRTriggerMouseClicked setKey(fieldRTrigger, keyCode.R1); }//GEN-LAST:event_fieldRTriggerMouseClicked private void fieldLTriggerMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldLTriggerMouseClicked setKey(fieldLTrigger, keyCode.L1); }//GEN-LAST:event_fieldLTriggerMouseClicked private void fieldVolPlusMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldVolPlusMouseClicked setKey(fieldVolPlus, keyCode.VOLPLUS); }//GEN-LAST:event_fieldVolPlusMouseClicked private void fieldVolMinMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldVolMinMouseClicked setKey(fieldVolMin, keyCode.VOLMIN); }//GEN-LAST:event_fieldVolMinMouseClicked private void fieldHomeMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldHomeMouseClicked setKey(fieldHome, keyCode.HOME); }//GEN-LAST:event_fieldHomeMouseClicked private void fieldHoldMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldHoldMouseClicked setKey(fieldHold, keyCode.HOLD); }//GEN-LAST:event_fieldHoldMouseClicked private void fieldDownMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldDownMouseClicked setKey(fieldDown, keyCode.DOWN); }//GEN-LAST:event_fieldDownMouseClicked private void fieldLeftMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldLeftMouseClicked setKey(fieldLeft, keyCode.LEFT); }//GEN-LAST:event_fieldLeftMouseClicked private void fieldUpMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldUpMouseClicked setKey(fieldUp, keyCode.UP); }//GEN-LAST:event_fieldUpMouseClicked private void fieldRightMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldRightMouseClicked setKey(fieldRight, keyCode.RIGHT); }//GEN-LAST:event_fieldRightMouseClicked private void fieldSquareMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldSquareMouseClicked setKey(fieldSquare, keyCode.SQUARE); }//GEN-LAST:event_fieldSquareMouseClicked private void fieldTriangleMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldTriangleMouseClicked setKey(fieldTriangle, keyCode.TRIANGLE); }//GEN-LAST:event_fieldTriangleMouseClicked private void fieldCircleMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldCircleMouseClicked setKey(fieldCircle, keyCode.CIRCLE); }//GEN-LAST:event_fieldCircleMouseClicked private void fieldCrossMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldCrossMouseClicked setKey(fieldCross, keyCode.CROSS); }//GEN-LAST:event_fieldCrossMouseClicked private void fieldSelectMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldSelectMouseClicked setKey(fieldSelect, keyCode.SELECT); }//GEN-LAST:event_fieldSelectMouseClicked private void fieldStartMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fieldStartMouseClicked setKey(fieldStart, keyCode.START); }//GEN-LAST:event_fieldStartMouseClicked // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JLabel bgLabel1; private jpcsp.GUI.CancelButton cancelButton; private javax.swing.JComboBox controllerBox; private javax.swing.JLabel controllerLabel; private javax.swing.JPanel fgPanel; private javax.swing.JTextField fieldAnalogDown; private javax.swing.JTextField fieldAnalogLeft; private javax.swing.JTextField fieldAnalogRight; private javax.swing.JTextField fieldAnalogUp; private javax.swing.JTextField fieldCircle; private javax.swing.JTextField fieldCross; private javax.swing.JTextField fieldDown; private javax.swing.JTextField fieldHold; private javax.swing.JTextField fieldHome; private javax.swing.JTextField fieldLTrigger; private javax.swing.JTextField fieldLeft; private javax.swing.JTextField fieldMusic; private javax.swing.JTextField fieldRTrigger; private javax.swing.JTextField fieldRight; private javax.swing.JTextField fieldScreen; private javax.swing.JTextField fieldSelect; private javax.swing.JTextField fieldSquare; private javax.swing.JTextField fieldStart; private javax.swing.JTextField fieldTriangle; private javax.swing.JTextField fieldUp; private javax.swing.JTextField fieldVolMin; private javax.swing.JTextField fieldVolPlus; private javax.swing.JButton jButtonOK; private javax.swing.JPanel keyPanel; // End of variables declaration//GEN-END:variables }