Search in sources :

Example 6 with WindowAdapter

use of java.awt.event.WindowAdapter in project AozoraEpub3 by hmdev.

the class AozoraEpub3Applet method main.

////////////////////////////////////////////////////////////////
// JFrame
////////////////////////////////////////////////////////////////
/** Jar実行用 */
public static void main(String[] args) {
    //LookAndFeel変更
    try {
        String lafName = UIManager.getSystemLookAndFeelClassName();
        //lafName = "";
        if (lafName.startsWith("com.sun.java.swing.plaf.windows.")) {
            UIManager.setLookAndFeel(lafName);
        } else {
            //Windows以外はMetalのままでFontはPLAIN
            UIDefaults defaultTable = UIManager.getLookAndFeelDefaults();
            for (Object o : defaultTable.keySet()) {
                if (o.toString().toLowerCase().endsWith("font")) {
                    FontUIResource font = (FontUIResource) UIManager.get(o);
                    font = new FontUIResource(font.getName(), Font.PLAIN, font.getSize());
                    UIManager.put(o, font);
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    //フレーム初期化
    final JFrame jFrame = new JFrame("AozoraEpub3");
    //アップレット生成と初期化
    final AozoraEpub3Applet applet = new AozoraEpub3Applet(jFrame);
    applet.iconImage = java.awt.Toolkit.getDefaultToolkit().createImage(AozoraEpub3Applet.class.getResource("images/icon.png"));
    applet.init();
    //アイコン設定
    jFrame.setIconImage(applet.iconImage);
    //最小サイズ
    jFrame.setMinimumSize(new Dimension(520, 320));
    jFrame.setPreferredSize(new Dimension(520, 400));
    try {
        int x = (int) Float.parseFloat(applet.props.getProperty("PosX"));
        int y = (int) Float.parseFloat(applet.props.getProperty("PosY"));
        jFrame.setLocation(x, y);
    } catch (Exception e) {
    }
    jFrame.setSize(applet.getSize());
    try {
        int w = (int) Float.parseFloat(applet.props.getProperty("SizeW"));
        int h = (int) Float.parseFloat(applet.props.getProperty("SizeH"));
        jFrame.setSize(w, h);
    } catch (Exception e) {
    }
    jFrame.addWindowListener(new WindowAdapter() {

        @Override
        public void windowClosing(WindowEvent evt) {
            try {
                //Window位置を割くに設定しておく
                Point location = jFrame.getLocation();
                Dimension size = jFrame.getSize();
                applet.props.setProperty("PosX", "" + location.getX());
                applet.props.setProperty("PosY", "" + location.getY());
                applet.props.setProperty("SizeW", "" + size.getWidth());
                applet.props.setProperty("SizeH", "" + size.getHeight());
                //props保存と終了処理
                applet.finalize();
            } catch (Throwable e) {
                e.printStackTrace();
            }
            System.exit(0);
        }
    });
    jFrame.add(applet);
    jFrame.setVisible(true);
    //引数にファイルが指定されていたら変換実行
    for (String fileName : args) {
        File file = new File(fileName);
        Vector<File> vecFiles = new Vector<File>();
        if (file.exists())
            vecFiles.add(file);
        if (vecFiles.size() > 0) {
            File[] files = new File[vecFiles.size()];
            for (int i = 0; i < files.length; i++) files[i] = vecFiles.get(i);
            applet.startConvertWorker(vecFiles, null, null, null);
        }
    }
    //Focus
    applet.jTabbedPane.requestFocus();
}
Also used : UIDefaults(javax.swing.UIDefaults) FontUIResource(javax.swing.plaf.FontUIResource) WindowAdapter(java.awt.event.WindowAdapter) Dimension(java.awt.Dimension) Point(java.awt.Point) IOException(java.io.IOException) FileNotFoundException(java.io.FileNotFoundException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) Point(java.awt.Point) JFrame(javax.swing.JFrame) WindowEvent(java.awt.event.WindowEvent) File(java.io.File) Vector(java.util.Vector)

Example 7 with WindowAdapter

use of java.awt.event.WindowAdapter in project jodd by oblac.

the class SwingSpy method initSpyDialog.

/**
	 * Initializes Spy dialog.
	 */
protected void initSpyDialog(Component rootComponent, Component component) {
    if (rootComponent instanceof Dialog) {
        spyDialog = new CaddyDialog((Dialog) rootComponent) {

            @Override
            protected JRootPane createRootPane() {
                return createSpyRootPane();
            }
        };
    } else if (rootComponent instanceof Frame) {
        spyDialog = new CaddyDialog((Frame) rootComponent) {

            @Override
            protected JRootPane createRootPane() {
                return createSpyRootPane();
            }
        };
    } else {
        spyDialog = new JDialog() {

            @Override
            protected JRootPane createRootPane() {
                return createSpyRootPane();
            }
        };
    }
    spyDialog.setName("SwingSpy");
    spyDialog.setTitle("SwingSpy");
    spyDialog.setModal(false);
    spyDialog.setAlwaysOnTop(true);
    Container contentPane = spyDialog.getContentPane();
    contentPane.setLayout(new BorderLayout());
    spyPanel = new SwingSpyPanel();
    spyPanel.reload(rootComponent, component);
    contentPane.add(spyPanel);
    spyDialog.pack();
    spyDialog.addWindowListener(new WindowAdapter() {

        @Override
        public void windowClosing(WindowEvent e) {
            super.windowClosed(e);
            spyGlass.setVisible(false);
            spyDialog = null;
        }
    });
    spyDialog.setLocationRelativeTo(null);
    spyDialog.setVisible(true);
}
Also used : Frame(java.awt.Frame) RootPaneContainer(javax.swing.RootPaneContainer) Container(java.awt.Container) BorderLayout(java.awt.BorderLayout) JDialog(javax.swing.JDialog) Dialog(java.awt.Dialog) WindowEvent(java.awt.event.WindowEvent) WindowAdapter(java.awt.event.WindowAdapter) JRootPane(javax.swing.JRootPane) JDialog(javax.swing.JDialog)

Example 8 with WindowAdapter

use of java.awt.event.WindowAdapter in project processing by processing.

the class JavaTextAreaPainter method startTweakMode.

protected void startTweakMode() {
    addMouseListener(new MouseListener() {

        @Override
        public void mouseReleased(MouseEvent e) {
            if (mouseHandle != null) {
                mouseHandle.resetProgress();
                mouseHandle = null;
                updateCursor(e.getX(), e.getY());
                repaint();
            }
        }

        @Override
        public void mousePressed(MouseEvent e) {
            int currentTab = getCurrentCodeIndex();
            // check for clicks on number handles
            for (Handle n : handles.get(currentTab)) {
                if (n.pick(e.getX(), e.getY())) {
                    cursorType = -1;
                    JavaTextAreaPainter.this.setCursor(blankCursor);
                    mouseHandle = n;
                    mouseHandle.setCenterX(e.getX());
                    repaint();
                    return;
                }
            }
            // check for clicks on color boxes
            for (ColorControlBox box : colorBoxes.get(currentTab)) {
                if (box.pick(e.getX(), e.getY())) {
                    if (colorSelector != null) {
                        // we already show a color selector, close it
                        colorSelector.frame.dispatchEvent(new WindowEvent(colorSelector.frame, WindowEvent.WINDOW_CLOSING));
                    }
                    colorSelector = new ColorSelector(box);
                    colorSelector.frame.addWindowListener(new WindowAdapter() {

                        public void windowClosing(WindowEvent e) {
                            colorSelector.frame.setVisible(false);
                            colorSelector = null;
                        }
                    });
                    colorSelector.show(getLocationOnScreen().x + e.getX() + 30, getLocationOnScreen().y + e.getY() - 130);
                }
            }
        }

        @Override
        public void mouseExited(MouseEvent e) {
        }

        @Override
        public void mouseEntered(MouseEvent e) {
        }

        @Override
        public void mouseClicked(MouseEvent e) {
        }
    });
    addMouseMotionListener(new MouseMotionListener() {

        @Override
        public void mouseMoved(MouseEvent e) {
            updateCursor(e.getX(), e.getY());
            if (!Settings.alwaysShowColorBoxes) {
                showHideColorBoxes(e.getY());
            }
        }

        @Override
        public void mouseDragged(MouseEvent e) {
            if (mouseHandle != null) {
                // set the current drag amount of the arrows
                mouseHandle.setCurrentX(e.getX());
                // update code text with the new value
                updateCodeText();
                if (colorSelector != null) {
                    colorSelector.refreshColor();
                }
                repaint();
            }
        }
    });
    tweakMode = true;
    setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
    repaint();
}
Also used : MouseListener(java.awt.event.MouseListener) MouseEvent(java.awt.event.MouseEvent) WindowEvent(java.awt.event.WindowEvent) WindowAdapter(java.awt.event.WindowAdapter) ColorControlBox(processing.mode.java.tweak.ColorControlBox) ColorSelector(processing.mode.java.tweak.ColorSelector) MouseMotionListener(java.awt.event.MouseMotionListener) Cursor(java.awt.Cursor) Handle(processing.mode.java.tweak.Handle)

Example 9 with WindowAdapter

use of java.awt.event.WindowAdapter in project javatari by ppeccin.

the class JComboBoxNim method buildGUI.

private void buildGUI() {
    setModalityType(ModalityType.APPLICATION_MODAL);
    setModal(true);
    setIconImage(Toolkit.getDefaultToolkit().getImage(SettingsDialog.class.getResource("/org/javatari/pc/screen/images/Favicon.png")));
    setTitle("javatari");
    setResizable(false);
    setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
    addWindowListener(new WindowAdapter() {

        @Override
        public void windowClosing(WindowEvent e) {
            closeAction();
        }
    });
    final AbstractAction toggleP1ModeAction = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            room.awtControls().toggleP1ControlsMode();
            refreshCurrentTab();
        }

        private static final long serialVersionUID = 1L;
    };
    final AbstractAction togglePaddlesAction = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            room.awtControls().togglePaddleMode();
            refreshCurrentTab();
        }

        private static final long serialVersionUID = 1L;
    };
    final AbstractAction toggleJoystickAction = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            room.joystickControls().toggleMode();
            refreshCurrentTab();
        }

        private static final long serialVersionUID = 1L;
    };
    final AbstractAction cycleROMFormatAction = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            room.currentConsole().controlsSocket().controlStateChanged(Control.CARTRIDGE_FORMAT, true);
            refreshCurrentTab();
        }

        private static final long serialVersionUID = 1L;
    };
    String fontName = "SansSerif";
    int adjust = 0;
    if (Environment.ARIAL_FONT)
        fontName = "Arial";
    else if (Environment.LIBERATION_FONT)
        fontName = "Liberation Sans";
    else
        adjust = -1;
    Font fontFields = new Font(fontName, Font.PLAIN, 11);
    Font fontLabel = new Font(fontName, Font.PLAIN, 13 + adjust);
    Font fontLabelBold = new Font(fontName, Font.BOLD, 13 + adjust);
    Font fontLabelMedium = new Font(fontName, Font.PLAIN, 14 + adjust);
    Font fontLabelMediumBold = new Font(fontName, Font.BOLD, 14 + adjust);
    Font fontLabelLarge = new Font(fontName, Font.PLAIN, 16 + adjust);
    Font fontLabelLargeBold = new Font(fontName, Font.BOLD, 16 + adjust);
    Color noBackground = new Color(0, 0, 0, 0);
    getContentPane().setLayout(new BorderLayout());
    contentPanel.setBorder(new EmptyBorder(5, 5, 0, 5));
    getContentPane().add(contentPanel, BorderLayout.CENTER);
    contentPanel.setLayout(new BorderLayout(0, 0));
    {
        mainTabbedPane = new JTabbedPane(JTabbedPane.TOP);
        if (Environment.NIMBUS_LAF)
            mainTabbedPane.setBorder(new DeepBorder(13, new Insets(7, 2, 6, 2)));
        mainTabbedPane.addChangeListener(new ChangeListener() {

            public void stateChanged(ChangeEvent e) {
                mainTabbedPaneChanged();
            }
        });
        mainTabbedPane.setFont(fontLabel);
        mainTabbedPane.setBackground(UIManager.getColor("TabbedPane.background"));
        contentPanel.add(mainTabbedPane, BorderLayout.CENTER);
        JPanel multiplayerPanel = new JPanel();
        mainTabbedPane.addTab("Multiplayer", null, multiplayerPanel, null);
        multiplayerPanel.setLayout(null);
        multiplayerPanel.setPreferredSize(INTERNAL_TAB_SIZE);
        clientConsoleL = new JLabel("");
        clientConsoleL.setIcon(new ImageIcon(SettingsDialog.class.getResource("/org/javatari/pc/room/settings/images/ServerClientConsole.png")));
        clientConsoleL.setBounds(316, 132, 139, 94);
        multiplayerPanel.add(clientConsoleL);
        serverConsoleL = new JLabel("");
        serverConsoleL.setIcon(new ImageIcon(SettingsDialog.class.getResource("/org/javatari/pc/room/settings/images/ServerClientConsole.png")));
        serverConsoleL.setBounds(12, 132, 139, 94);
        multiplayerPanel.add(serverConsoleL);
        networkL = new JLabel("");
        networkL.setIcon(new ImageIcon(SettingsDialog.class.getResource("/org/javatari/pc/room/settings/images/Network.png")));
        networkL.setBounds(116, 81, 237, 98);
        multiplayerPanel.add(networkL);
        JLabel lblNewLabel_1 = new JLabel("P1 Server");
        lblNewLabel_1.setFont(fontLabelLargeBold);
        lblNewLabel_1.setHorizontalAlignment(SwingConstants.CENTER);
        lblNewLabel_1.setBounds(24, 13, 100, 20);
        multiplayerPanel.add(lblNewLabel_1);
        serverStartB = new JButton("START");
        serverStartB.setFont(fontLabel);
        serverStartB.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                serverStartAction();
            }
        });
        serverStartB.setBounds(20, 36, 108, 26);
        multiplayerPanel.add(serverStartB);
        clientConnectB = new JButton("JOIN");
        clientConnectB.setFont(fontLabel);
        clientConnectB.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                clientConnectAction();
            }
        });
        clientConnectB.setBounds(341, 36, 108, 26);
        multiplayerPanel.add(clientConnectB);
        clientServerAddressTf = new JTextFieldNim();
        clientServerAddressTf.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                clientConnectAction();
            }
        });
        clientServerAddressTf.setFont(fontLabel);
        clientServerAddressTf.setBounds(335, 85, 121, 27);
        multiplayerPanel.add(clientServerAddressTf);
        clientServerAddressTf.setColumns(10);
        JLabel lblServerAddressport = new JLabel("Server address [:port]");
        lblServerAddressport.setHorizontalAlignment(SwingConstants.CENTER);
        lblServerAddressport.setFont(fontLabel);
        lblServerAddressport.setBounds(323, 70, 144, 15);
        multiplayerPanel.add(lblServerAddressport);
        serverPortTf = new JTextFieldNim();
        serverPortTf.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                serverStartAction();
            }
        });
        serverPortTf.setFont(fontLabel);
        serverPortTf.setHorizontalAlignment(SwingConstants.RIGHT);
        serverPortTf.setColumns(10);
        serverPortTf.setBounds(41, 85, 66, 27);
        multiplayerPanel.add(serverPortTf);
        JLabel lblPort = new JLabel("Server port");
        lblPort.setHorizontalAlignment(SwingConstants.CENTER);
        lblPort.setFont(fontLabel);
        lblPort.setBounds(32, 70, 82, 15);
        multiplayerPanel.add(lblPort);
        JLabel lblPClient = new JLabel("P2 Client");
        lblPClient.setHorizontalAlignment(SwingConstants.CENTER);
        lblPClient.setFont(fontLabelLargeBold);
        lblPClient.setBounds(345, 13, 100, 20);
        multiplayerPanel.add(lblPClient);
        multiplayerModeL = new JLabel("P1 SERVER MODE");
        multiplayerModeL.setFont(fontLabelMediumBold);
        multiplayerModeL.setOpaque(false);
        multiplayerModeL.setBorder(new DeepBorder(10, new Insets(5, 5, 5, 5)));
        multiplayerModeL.setHorizontalAlignment(SwingConstants.CENTER);
        multiplayerModeL.setBounds(148, 34, 174, 30);
        multiplayerPanel.add(multiplayerModeL);
        standaloneConsoleL = new JLabel("");
        standaloneConsoleL.setIcon(new ImageIcon(SettingsDialog.class.getResource("/org/javatari/pc/room/settings/images/StandaloneConsole.png")));
        standaloneConsoleL.setBounds(120, 90, 202, 146);
        multiplayerPanel.add(standaloneConsoleL);
        {
            keyboardPanel = new JPanel();
            mainTabbedPane.addTab("Keyboard", null, keyboardPanel, null);
            keyboardPanel.setLayout(null);
            keyboardPanel.setPreferredSize(INTERNAL_TAB_SIZE);
            {
                keyboard0Icon = new JLabel("");
                keyboard0Icon.setIcon(joystickIcon);
                keyboard0Icon.setBounds(70, 91, 75, 90);
                keyboardPanel.add(keyboard0Icon);
            }
            keyP0Up = new JTextFieldNim();
            keyP0Up.setDisabledTextColor(Color.GRAY);
            keyP0Up.setBackground(Color.WHITE);
            keyP0Up.setEditable(false);
            keyP0Up.setFont(fontFields);
            keyP0Up.setHorizontalAlignment(SwingConstants.CENTER);
            keyP0Up.setBounds(85, 67, 44, 23);
            keyP0Up.setColumns(10);
            keyboardPanel.add(keyP0Up);
            keyP0Right = new JTextFieldNim();
            keyP0Right.setDisabledTextColor(Color.GRAY);
            keyP0Right.setBackground(Color.WHITE);
            keyP0Right.setEditable(false);
            keyP0Right.setFont(fontFields);
            keyP0Right.setHorizontalAlignment(SwingConstants.CENTER);
            keyP0Right.setColumns(10);
            keyP0Right.setBounds(151, 130, 45, 23);
            keyboardPanel.add(keyP0Right);
            keyP0Left = new JTextFieldNim();
            keyP0Left.setDisabledTextColor(Color.GRAY);
            keyP0Left.setBackground(Color.WHITE);
            keyP0Left.setEditable(false);
            keyP0Left.setFont(fontFields);
            keyP0Left.setHorizontalAlignment(SwingConstants.CENTER);
            keyP0Left.setColumns(10);
            keyP0Left.setBounds(19, 130, 45, 23);
            keyboardPanel.add(keyP0Left);
            keyP0Down = new JTextFieldNim();
            keyP0Down.setDisabledTextColor(Color.GRAY);
            keyP0Down.setBackground(Color.WHITE);
            keyP0Down.setEditable(false);
            keyP0Down.setFont(fontFields);
            keyP0Down.setHorizontalAlignment(SwingConstants.CENTER);
            keyP0Down.setColumns(10);
            keyP0Down.setBounds(85, 194, 45, 23);
            keyboardPanel.add(keyP0Down);
            JLabel lblRight = new JLabel("Right");
            lblRight.setFont(fontLabel);
            lblRight.setHorizontalAlignment(SwingConstants.CENTER);
            lblRight.setBounds(153, 116, 40, 15);
            keyboardPanel.add(lblRight);
            JLabel lblLeft = new JLabel("Left");
            lblLeft.setFont(fontLabel);
            lblLeft.setHorizontalAlignment(SwingConstants.CENTER);
            lblLeft.setBounds(21, 116, 40, 14);
            keyboardPanel.add(lblLeft);
            keyP0DownL = new JLabel("Down");
            keyP0DownL.setFont(fontLabel);
            keyP0DownL.setHorizontalAlignment(SwingConstants.CENTER);
            keyP0DownL.setBounds(78, 180, 58, 14);
            keyboardPanel.add(keyP0DownL);
            keyP0UpL = new JLabel("Up");
            keyP0UpL.setFont(fontLabel);
            keyP0UpL.setHorizontalAlignment(SwingConstants.CENTER);
            keyP0UpL.setBounds(78, 53, 58, 14);
            keyboardPanel.add(keyP0UpL);
            keyP0Button = new JTextFieldNim();
            keyP0Button.setDisabledTextColor(Color.GRAY);
            keyP0Button.setBackground(Color.WHITE);
            keyP0Button.setEditable(false);
            keyP0Button.setFont(fontFields);
            keyP0Button.setHorizontalAlignment(SwingConstants.CENTER);
            keyP0Button.setColumns(10);
            keyP0Button.setBounds(29, 79, 44, 23);
            keyboardPanel.add(keyP0Button);
            JLabel lblFire = new JLabel("Fire 1");
            lblFire.setFont(fontLabel);
            lblFire.setHorizontalAlignment(SwingConstants.CENTER);
            lblFire.setBounds(31, 65, 40, 14);
            keyboardPanel.add(lblFire);
            keyboardPlayer1Lb = new JLabel("Player 1");
            keyboardPlayer1Lb.setFont(fontLabelLargeBold);
            keyboardPlayer1Lb.setHorizontalAlignment(SwingConstants.CENTER);
            keyboardPlayer1Lb.setBounds(70, 22, 74, 20);
            keyboardPanel.add(keyboardPlayer1Lb);
            JLabel lblFire_1 = new JLabel("Fire 2");
            lblFire_1.setFont(fontLabel);
            lblFire_1.setHorizontalAlignment(SwingConstants.CENTER);
            lblFire_1.setBounds(143, 65, 40, 14);
            keyboardPanel.add(lblFire_1);
            keyP0Button2 = new JTextFieldNim();
            keyP0Button2.setDisabledTextColor(Color.GRAY);
            keyP0Button2.setBackground(Color.WHITE);
            keyP0Button2.setEditable(false);
            keyP0Button2.setFont(fontFields);
            keyP0Button2.setHorizontalAlignment(SwingConstants.CENTER);
            keyP0Button2.setColumns(10);
            keyP0Button2.setBounds(141, 79, 44, 23);
            keyboardPanel.add(keyP0Button2);
            JLabel txtpnAltK_1 = new JLabel();
            txtpnAltK_1.setHorizontalTextPosition(SwingConstants.CENTER);
            txtpnAltK_1.setHorizontalAlignment(SwingConstants.CENTER);
            txtpnAltK_1.setOpaque(false);
            txtpnAltK_1.setFont(fontLabel);
            txtpnAltK_1.setText("ALT + K: Swap Controls");
            txtpnAltK_1.setBounds(143, 215, 185, 21);
            keyboardPanel.add(txtpnAltK_1);
            txtpnAltK_1.addMouseListener(new MouseAdapter() {

                @Override
                public void mouseClicked(MouseEvent e) {
                    toggleP1ModeAction.actionPerformed(null);
                }
            });
            keyboard1Icon = new JLabel("");
            keyboard1Icon.setIcon(joystickIcon);
            keyboard1Icon.setBounds(327, 91, 75, 90);
            keyboardPanel.add(keyboard1Icon);
            keyP1Up = new JTextFieldNim();
            keyP1Up.setDisabledTextColor(Color.GRAY);
            keyP1Up.setHorizontalAlignment(SwingConstants.CENTER);
            keyP1Up.setFont(fontFields);
            keyP1Up.setEditable(false);
            keyP1Up.setColumns(10);
            keyP1Up.setBackground(Color.WHITE);
            keyP1Up.setBounds(342, 67, 44, 23);
            keyboardPanel.add(keyP1Up);
            keyP1Right = new JTextFieldNim();
            keyP1Right.setDisabledTextColor(Color.GRAY);
            keyP1Right.setHorizontalAlignment(SwingConstants.CENTER);
            keyP1Right.setFont(fontFields);
            keyP1Right.setEditable(false);
            keyP1Right.setColumns(10);
            keyP1Right.setBackground(Color.WHITE);
            keyP1Right.setBounds(407, 130, 45, 23);
            keyboardPanel.add(keyP1Right);
            keyP1Left = new JTextFieldNim();
            keyP1Left.setDisabledTextColor(Color.GRAY);
            keyP1Left.setHorizontalAlignment(SwingConstants.CENTER);
            keyP1Left.setFont(fontFields);
            keyP1Left.setEditable(false);
            keyP1Left.setColumns(10);
            keyP1Left.setBackground(Color.WHITE);
            keyP1Left.setBounds(276, 130, 45, 23);
            keyboardPanel.add(keyP1Left);
            keyP1Down = new JTextFieldNim();
            keyP1Down.setDisabledTextColor(Color.GRAY);
            keyP1Down.setHorizontalAlignment(SwingConstants.CENTER);
            keyP1Down.setFont(fontFields);
            keyP1Down.setEditable(false);
            keyP1Down.setColumns(10);
            keyP1Down.setBackground(Color.WHITE);
            keyP1Down.setBounds(342, 194, 45, 23);
            keyboardPanel.add(keyP1Down);
            JLabel label_1 = new JLabel("Right");
            label_1.setHorizontalAlignment(SwingConstants.CENTER);
            label_1.setFont(fontLabel);
            label_1.setBounds(409, 116, 40, 15);
            keyboardPanel.add(label_1);
            JLabel label_2 = new JLabel("Left");
            label_2.setHorizontalAlignment(SwingConstants.CENTER);
            label_2.setFont(fontLabel);
            label_2.setBounds(278, 116, 40, 14);
            keyboardPanel.add(label_2);
            keyP1DownL = new JLabel("Down");
            keyP1DownL.setHorizontalAlignment(SwingConstants.CENTER);
            keyP1DownL.setFont(fontLabel);
            keyP1DownL.setBounds(335, 180, 58, 14);
            keyboardPanel.add(keyP1DownL);
            keyP1UpL = new JLabel("Up");
            keyP1UpL.setHorizontalAlignment(SwingConstants.CENTER);
            keyP1UpL.setFont(fontLabel);
            keyP1UpL.setBounds(335, 53, 58, 14);
            keyboardPanel.add(keyP1UpL);
            keyP1Button = new JTextFieldNim();
            keyP1Button.setDisabledTextColor(Color.GRAY);
            keyP1Button.setHorizontalAlignment(SwingConstants.CENTER);
            keyP1Button.setFont(fontFields);
            keyP1Button.setEditable(false);
            keyP1Button.setColumns(10);
            keyP1Button.setBackground(Color.WHITE);
            keyP1Button.setBounds(286, 79, 44, 23);
            keyboardPanel.add(keyP1Button);
            JLabel label_5 = new JLabel("Fire 1");
            label_5.setHorizontalAlignment(SwingConstants.CENTER);
            label_5.setFont(fontLabel);
            label_5.setBounds(288, 65, 40, 14);
            keyboardPanel.add(label_5);
            keyboardPlayer2Lb = new JLabel("Player 2");
            keyboardPlayer2Lb.setHorizontalAlignment(SwingConstants.CENTER);
            keyboardPlayer2Lb.setFont(fontLabelLargeBold);
            keyboardPlayer2Lb.setBounds(327, 22, 74, 20);
            keyboardPanel.add(keyboardPlayer2Lb);
            JLabel label_7 = new JLabel("Fire 2");
            label_7.setHorizontalAlignment(SwingConstants.CENTER);
            label_7.setFont(fontLabel);
            label_7.setBounds(399, 65, 40, 14);
            keyboardPanel.add(label_7);
            keyP1Button2 = new JTextFieldNim();
            keyP1Button2.setDisabledTextColor(Color.GRAY);
            keyP1Button2.setHorizontalAlignment(SwingConstants.CENTER);
            keyP1Button2.setFont(fontFields);
            keyP1Button2.setEditable(false);
            keyP1Button2.setColumns(10);
            keyP1Button2.setBackground(Color.WHITE);
            keyP1Button2.setBounds(397, 79, 44, 23);
            keyboardPanel.add(keyP1Button2);
            keyboardMessageL = new JLabel("");
            keyboardMessageL.setHorizontalAlignment(SwingConstants.CENTER);
            keyboardMessageL.setFont(fontLabel);
            keyboardMessageL.setBounds(165, 25, 141, 15);
            keyboardPanel.add(keyboardMessageL);
            JLabel txtpnAltL = new JLabel();
            txtpnAltL.setHorizontalTextPosition(SwingConstants.CENTER);
            txtpnAltL.setHorizontalAlignment(SwingConstants.CENTER);
            txtpnAltL.setText("ALT + L: Toggle Paddles");
            txtpnAltL.setOpaque(false);
            txtpnAltL.setFont(fontLabel);
            txtpnAltL.setBounds(143, 235, 185, 21);
            keyboardPanel.add(txtpnAltL);
            txtpnAltL.addMouseListener(new MouseAdapter() {

                @Override
                public void mouseClicked(MouseEvent e) {
                    togglePaddlesAction.actionPerformed(null);
                }
            });
        }
        joysticksPanel = new JPanel();
        joysticksPanel.setLayout(null);
        joysticksPanel.setPreferredSize(INTERNAL_TAB_SIZE);
        mainTabbedPane.addTab("Joysticks", null, joysticksPanel, null);
        joystick0Icon = new JLabel("");
        joystick0Icon.setIcon(joystickIcon);
        joystick0Icon.setBounds(70, 91, 75, 90);
        joysticksPanel.add(joystick0Icon);
        joyP0Reset = new JTextFieldNim();
        joyP0Reset.setDisabledTextColor(Color.GRAY);
        joyP0Reset.setEnabled(false);
        joyP0Reset.setName("joyP0Reset");
        joyP0Reset.setHorizontalAlignment(SwingConstants.CENTER);
        joyP0Reset.setFont(fontFields);
        joyP0Reset.setEditable(false);
        joyP0Reset.setColumns(10);
        joyP0Reset.setBackground(Color.WHITE);
        joyP0Reset.setBounds(85, 194, 44, 23);
        joysticksPanel.add(joyP0Reset);
        joyP0Pause = new JTextFieldNim();
        joyP0Pause.setDisabledTextColor(Color.GRAY);
        joyP0Pause.setEnabled(false);
        joyP0Pause.setName("joyP0Pause");
        joyP0Pause.setHorizontalAlignment(SwingConstants.CENTER);
        joyP0Pause.setFont(fontFields);
        joyP0Pause.setEditable(false);
        joyP0Pause.setColumns(10);
        joyP0Pause.setBackground(Color.WHITE);
        joyP0Pause.setBounds(85, 232, 44, 23);
        joysticksPanel.add(joyP0Pause);
        JLabel lblSelect = new JLabel("Select");
        lblSelect.setHorizontalAlignment(SwingConstants.CENTER);
        lblSelect.setFont(fontLabel);
        lblSelect.setBounds(28, 180, 40, 15);
        joysticksPanel.add(lblSelect);
        JLabel lblFire_2 = new JLabel("Pause");
        lblFire_2.setHorizontalAlignment(SwingConstants.CENTER);
        lblFire_2.setFont(fontLabel);
        lblFire_2.setBounds(87, 218, 40, 14);
        joysticksPanel.add(lblFire_2);
        joyP0Button2 = new JTextFieldNim();
        joyP0Button2.setDisabledTextColor(Color.GRAY);
        joyP0Button2.setEnabled(false);
        joyP0Button2.setName("joyP0Button2");
        joyP0Button2.setHorizontalAlignment(SwingConstants.CENTER);
        joyP0Button2.setFont(fontFields);
        joyP0Button2.setEditable(false);
        joyP0Button2.setColumns(10);
        joyP0Button2.setBackground(Color.WHITE);
        joyP0Button2.setBounds(141, 79, 44, 23);
        joysticksPanel.add(joyP0Button2);
        JLabel lblFire_5 = new JLabel("Fire 2");
        lblFire_5.setHorizontalAlignment(SwingConstants.CENTER);
        lblFire_5.setFont(fontLabel);
        lblFire_5.setBounds(143, 65, 40, 14);
        joysticksPanel.add(lblFire_5);
        joysticksPlayer1Lb = new JLabel("Player 1");
        joysticksPlayer1Lb.setHorizontalAlignment(SwingConstants.CENTER);
        joysticksPlayer1Lb.setFont(fontLabelLargeBold);
        joysticksPlayer1Lb.setBounds(78, 6, 74, 20);
        joysticksPanel.add(joysticksPlayer1Lb);
        JLabel lblReset = new JLabel("Fire 1");
        lblReset.setHorizontalAlignment(SwingConstants.CENTER);
        lblReset.setFont(fontLabel);
        lblReset.setBounds(31, 65, 40, 15);
        joysticksPanel.add(lblReset);
        joyP0Button = new JTextFieldNim();
        joyP0Button.setDisabledTextColor(Color.GRAY);
        joyP0Button.setEnabled(false);
        joyP0Button.setName("joyP0Button");
        joyP0Button.setHorizontalAlignment(SwingConstants.CENTER);
        joyP0Button.setFont(fontFields);
        joyP0Button.setEditable(false);
        joyP0Button.setColumns(10);
        joyP0Button.setBackground(Color.WHITE);
        joyP0Button.setBounds(29, 79, 44, 23);
        joysticksPanel.add(joyP0Button);
        joystick1Icon = new JLabel("");
        joystick1Icon.setIcon(joystickIcon);
        joystick1Icon.setBounds(327, 91, 75, 90);
        joysticksPanel.add(joystick1Icon);
        joyP1Pause = new JTextFieldNim();
        joyP1Pause.setDisabledTextColor(Color.GRAY);
        joyP1Pause.setEnabled(false);
        joyP1Pause.setName("joyP1Pause");
        joyP1Pause.setHorizontalAlignment(SwingConstants.CENTER);
        joyP1Pause.setFont(fontFields);
        joyP1Pause.setEditable(false);
        joyP1Pause.setColumns(10);
        joyP1Pause.setBackground(Color.WHITE);
        joyP1Pause.setBounds(400, 232, 44, 23);
        joysticksPanel.add(joyP1Pause);
        JLabel lblFire_3 = new JLabel("Pause");
        lblFire_3.setHorizontalAlignment(SwingConstants.CENTER);
        lblFire_3.setFont(fontLabel);
        lblFire_3.setBounds(402, 218, 40, 14);
        joysticksPanel.add(lblFire_3);
        joysticksPlayer2Lb = new JLabel("Player 2");
        joysticksPlayer2Lb.setHorizontalAlignment(SwingConstants.CENTER);
        joysticksPlayer2Lb.setFont(fontLabelLargeBold);
        joysticksPlayer2Lb.setBounds(319, 6, 74, 20);
        joysticksPanel.add(joysticksPlayer2Lb);
        JLabel lblFire_4 = new JLabel("Fire 1");
        lblFire_4.setHorizontalAlignment(SwingConstants.CENTER);
        lblFire_4.setFont(fontLabel);
        lblFire_4.setBounds(288, 65, 40, 14);
        joysticksPanel.add(lblFire_4);
        joyP1Button = new JTextFieldNim();
        joyP1Button.setDisabledTextColor(Color.GRAY);
        joyP1Button.setEnabled(false);
        joyP1Button.setName("joyP1Button");
        joyP1Button.setHorizontalAlignment(SwingConstants.CENTER);
        joyP1Button.setFont(fontFields);
        joyP1Button.setEditable(false);
        joyP1Button.setColumns(10);
        joyP1Button.setBackground(Color.WHITE);
        joyP1Button.setBounds(286, 79, 44, 23);
        joysticksPanel.add(joyP1Button);
        joysticksMessageL = new JLabel("");
        joysticksMessageL.setHorizontalAlignment(SwingConstants.CENTER);
        joysticksMessageL.setFont(fontLabel);
        joysticksMessageL.setBounds(160, 9, 151, 15);
        joysticksPanel.add(joysticksMessageL);
        JLabel txtpnAltJ_1 = new JLabel();
        txtpnAltJ_1.setHorizontalTextPosition(SwingConstants.CENTER);
        txtpnAltJ_1.setHorizontalAlignment(SwingConstants.CENTER);
        txtpnAltJ_1.setText("ALT + J: Swap Joysticks");
        txtpnAltJ_1.setOpaque(false);
        txtpnAltJ_1.setFont(fontLabel);
        txtpnAltJ_1.setBounds(155, 215, 163, 21);
        joysticksPanel.add(txtpnAltJ_1);
        txtpnAltJ_1.addMouseListener(new MouseAdapter() {

            @Override
            public void mouseClicked(MouseEvent e) {
                toggleJoystickAction.actionPerformed(null);
            }
        });
        JLabel txtpnAltL_2 = new JLabel();
        txtpnAltL_2.setHorizontalTextPosition(SwingConstants.CENTER);
        txtpnAltL_2.setHorizontalAlignment(SwingConstants.CENTER);
        txtpnAltL_2.setText("ALT + L: Toggle Paddles");
        txtpnAltL_2.setOpaque(false);
        txtpnAltL_2.setFont(fontLabel);
        txtpnAltL_2.setBounds(146, 235, 179, 21);
        joysticksPanel.add(txtpnAltL_2);
        txtpnAltL_2.addMouseListener(new MouseAdapter() {

            @Override
            public void mouseClicked(MouseEvent e) {
                togglePaddlesAction.actionPerformed(null);
            }
        });
        JLabel lblFastSpeed = new JLabel("Reset");
        lblFastSpeed.setHorizontalAlignment(SwingConstants.CENTER);
        lblFastSpeed.setFont(fontLabel);
        lblFastSpeed.setBounds(87, 180, 40, 15);
        joysticksPanel.add(lblFastSpeed);
        joyP0Select = new JTextFieldNim();
        joyP0Select.setDisabledTextColor(Color.GRAY);
        joyP0Select.setEnabled(false);
        joyP0Select.setName("joyP0Select");
        joyP0Select.setHorizontalAlignment(SwingConstants.CENTER);
        joyP0Select.setFont(fontFields);
        joyP0Select.setEditable(false);
        joyP0Select.setColumns(10);
        joyP0Select.setBackground(Color.WHITE);
        joyP0Select.setBounds(26, 194, 44, 23);
        joysticksPanel.add(joyP0Select);
        joyP1Select = new JTextFieldNim();
        joyP1Select.setDisabledTextColor(Color.GRAY);
        joyP1Select.setEnabled(false);
        joyP1Select.setName("joyP1Select");
        joyP1Select.setHorizontalAlignment(SwingConstants.CENTER);
        joyP1Select.setFont(fontFields);
        joyP1Select.setEditable(false);
        joyP1Select.setColumns(10);
        joyP1Select.setBackground(Color.WHITE);
        joyP1Select.setBounds(342, 194, 44, 23);
        joysticksPanel.add(joyP1Select);
        JLabel lblSelect_1 = new JLabel("Reset");
        lblSelect_1.setHorizontalAlignment(SwingConstants.CENTER);
        lblSelect_1.setFont(fontLabel);
        lblSelect_1.setBounds(402, 180, 40, 15);
        joysticksPanel.add(lblSelect_1);
        joyP1Reset = new JTextFieldNim();
        joyP1Reset.setDisabledTextColor(Color.GRAY);
        joyP1Reset.setEnabled(false);
        joyP1Reset.setName("joyP1Reset");
        joyP1Reset.setHorizontalAlignment(SwingConstants.CENTER);
        joyP1Reset.setFont(fontFields);
        joyP1Reset.setEditable(false);
        joyP1Reset.setColumns(10);
        joyP1Reset.setBackground(Color.WHITE);
        joyP1Reset.setBounds(400, 194, 44, 23);
        joysticksPanel.add(joyP1Reset);
        joyP1Button2 = new JTextFieldNim();
        joyP1Button2.setEnabled(false);
        joyP1Button2.setDisabledTextColor(Color.GRAY);
        joyP1Button2.setName("joyP1Button2");
        joyP1Button2.setHorizontalAlignment(SwingConstants.CENTER);
        joyP1Button2.setFont(fontFields);
        joyP1Button2.setEditable(false);
        joyP1Button2.setColumns(10);
        joyP1Button2.setBackground(Color.WHITE);
        joyP1Button2.setBounds(397, 79, 44, 23);
        joysticksPanel.add(joyP1Button2);
        JLabel lblReset_1 = new JLabel("Select");
        lblReset_1.setHorizontalAlignment(SwingConstants.CENTER);
        lblReset_1.setFont(fontLabel);
        lblReset_1.setBounds(344, 180, 40, 14);
        joysticksPanel.add(lblReset_1);
        JLabel lblFastSpeed_1 = new JLabel("Fire 2");
        lblFastSpeed_1.setHorizontalAlignment(SwingConstants.CENTER);
        lblFastSpeed_1.setFont(fontLabel);
        lblFastSpeed_1.setBounds(399, 65, 40, 15);
        joysticksPanel.add(lblFastSpeed_1);
        joyP0Deadzone = new JComboBoxNim();
        joyP0Deadzone.setFont(fontFields);
        joyP0Deadzone.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                joyP0DeadzoneAction();
            }
        });
        joyP0Deadzone.setModel(new DefaultComboBoxModel(JOY_DEADZONE_OPTIONS));
        joyP0Deadzone.setBounds(152, 121, 64, 23);
        joysticksPanel.add(joyP0Deadzone);
        joyP0DeadzoneL = new JLabel("Dead zone");
        joyP0DeadzoneL.setHorizontalAlignment(SwingConstants.CENTER);
        joyP0DeadzoneL.setFont(fontLabel);
        joyP0DeadzoneL.setBounds(149, 107, 71, 15);
        joysticksPanel.add(joyP0DeadzoneL);
        joyP1Deadzone = new JComboBoxNim();
        joyP1Deadzone.setFont(fontFields);
        joyP1Deadzone.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                joyP1DeadzoneAction();
            }
        });
        joyP1Deadzone.setModel(new DefaultComboBoxModel(JOY_DEADZONE_OPTIONS));
        joyP1Deadzone.setBounds(257, 121, 64, 23);
        joysticksPanel.add(joyP1Deadzone);
        joyP1DeadzoneL = new JLabel("Dead zone");
        joyP1DeadzoneL.setHorizontalAlignment(SwingConstants.CENTER);
        joyP1DeadzoneL.setFont(fontLabel);
        joyP1DeadzoneL.setBounds(254, 107, 71, 15);
        joysticksPanel.add(joyP1DeadzoneL);
        joyP0FastSpeed = new JTextFieldNim();
        joyP0FastSpeed.setName("joyP0FastSpeed");
        joyP0FastSpeed.setHorizontalAlignment(SwingConstants.CENTER);
        joyP0FastSpeed.setFont(fontFields);
        joyP0FastSpeed.setEnabled(false);
        joyP0FastSpeed.setEditable(false);
        joyP0FastSpeed.setDisabledTextColor(Color.GRAY);
        joyP0FastSpeed.setColumns(10);
        joyP0FastSpeed.setBackground(Color.WHITE);
        joyP0FastSpeed.setBounds(26, 232, 44, 23);
        joysticksPanel.add(joyP0FastSpeed);
        JLabel lblFast = new JLabel("Fast");
        lblFast.setHorizontalAlignment(SwingConstants.CENTER);
        lblFast.setFont(fontLabel);
        lblFast.setBounds(28, 218, 40, 15);
        joysticksPanel.add(lblFast);
        joyP1FastSpeed = new JTextFieldNim();
        joyP1FastSpeed.setName("joyP1FastSpeed");
        joyP1FastSpeed.setHorizontalAlignment(SwingConstants.CENTER);
        joyP1FastSpeed.setFont(fontFields);
        joyP1FastSpeed.setEnabled(false);
        joyP1FastSpeed.setEditable(false);
        joyP1FastSpeed.setDisabledTextColor(Color.GRAY);
        joyP1FastSpeed.setColumns(10);
        joyP1FastSpeed.setBackground(Color.WHITE);
        joyP1FastSpeed.setBounds(342, 232, 44, 23);
        joysticksPanel.add(joyP1FastSpeed);
        JLabel lblFast_1 = new JLabel("Fast");
        lblFast_1.setHorizontalAlignment(SwingConstants.CENTER);
        lblFast_1.setFont(fontLabel);
        lblFast_1.setBounds(344, 218, 40, 15);
        joysticksPanel.add(lblFast_1);
        joyP0Sensitivity = new JComboBoxNim();
        joyP0Sensitivity.setFont(fontFields);
        joyP0Sensitivity.setModel(new DefaultComboBoxModel(PADDLE_SENS_OPTIONS));
        joyP0Sensitivity.setBounds(152, 163, 64, 23);
        joysticksPanel.add(joyP0Sensitivity);
        joyP0Sensitivity.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                joyP0SensitivityAction();
            }
        });
        JLabel lblPaddleSens = new JLabel("Sensitivity");
        lblPaddleSens.setHorizontalAlignment(SwingConstants.CENTER);
        lblPaddleSens.setFont(fontLabel);
        lblPaddleSens.setBounds(149, 149, 71, 15);
        joysticksPanel.add(lblPaddleSens);
        joyP1Sensitivity = new JComboBoxNim();
        joyP1Sensitivity.setFont(fontFields);
        joyP1Sensitivity.setModel(new DefaultComboBoxModel(PADDLE_SENS_OPTIONS));
        joyP1Sensitivity.setBounds(257, 163, 64, 23);
        joysticksPanel.add(joyP1Sensitivity);
        joyP1Sensitivity.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                joyP1SensitivityAction();
            }
        });
        JLabel label_3 = new JLabel("Sensitivity");
        label_3.setHorizontalAlignment(SwingConstants.CENTER);
        label_3.setFont(fontLabel);
        label_3.setBounds(254, 149, 71, 15);
        joysticksPanel.add(label_3);
        JPanel cartridgePanel = new JPanel();
        mainTabbedPane.addTab("Cartridge", null, cartridgePanel, null);
        cartridgePanel.setLayout(null);
        cartridgePanel.setPreferredSize(INTERNAL_TAB_SIZE);
        JLabel txtpnRomName = new JLabel();
        txtpnRomName.setBounds(15, 6, 153, 21);
        txtpnRomName.setText("Cartridge");
        txtpnRomName.setOpaque(false);
        txtpnRomName.setFont(fontLabelBold);
        cartridgePanel.add(txtpnRomName);
        romNameTf = new JTextFieldNim();
        romNameTf.setFont(fontLabel);
        romNameTf.setEditable(false);
        romNameTf.setBounds(14, 24, 445, 27);
        cartridgePanel.add(romNameTf);
        romNameTf.setColumns(10);
        JLabel txtpnRomFormat = new JLabel();
        txtpnRomFormat.setText("Cartridge Format");
        txtpnRomFormat.setOpaque(false);
        txtpnRomFormat.setFont(fontLabelBold);
        txtpnRomFormat.setBounds(15, 53, 447, 21);
        cartridgePanel.add(txtpnRomFormat);
        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setBounds(14, 73, 285, 177);
        cartridgePanel.add(scrollPane);
        romFormatLb = new JList();
        romFormatLb.addListSelectionListener(new ListSelectionListener() {

            @Override
            public void valueChanged(ListSelectionEvent e) {
                romFormatLbAction();
            }
        });
        romFormatLb.setFont(fontLabel);
        scrollPane.setViewportView(romFormatLb);
        JTextPane txtpnYouCanPlace = new JTextPane();
        txtpnYouCanPlace.setText("You can give Format Hints like (E0) or (3F) in ROMs filenames");
        txtpnYouCanPlace.setOpaque(false);
        txtpnYouCanPlace.setBackground(noBackground);
        txtpnYouCanPlace.setFont(fontLabel);
        txtpnYouCanPlace.setEditable(false);
        txtpnYouCanPlace.setBounds(306, 77, 165, 78);
        cartridgePanel.add(txtpnYouCanPlace);
        JTextPane txtpnAltbCycle = new JTextPane();
        txtpnAltbCycle.setFocusable(false);
        txtpnAltbCycle.setText("ALT + B: Cycle through compatible Formats\r\n");
        txtpnAltbCycle.setOpaque(false);
        txtpnAltbCycle.setBackground(noBackground);
        txtpnAltbCycle.setFont(fontLabel);
        txtpnAltbCycle.setEditable(false);
        txtpnAltbCycle.setBounds(306, 201, 165, 61);
        cartridgePanel.add(txtpnAltbCycle);
        JLabel lbLibInfo = new JLabel("(Based on Rom Hunter's collection)");
        lbLibInfo.setHorizontalAlignment(SwingConstants.TRAILING);
        lbLibInfo.setFont(fontLabel);
        lbLibInfo.setBounds(170, 6, 285, 20);
        cartridgePanel.add(lbLibInfo);
        txtpnAltbCycle.addMouseListener(new MouseAdapter() {

            @Override
            public void mouseClicked(MouseEvent e) {
                cycleROMFormatAction.actionPerformed(null);
            }
        });
        JPanel helpPanel = new JPanel();
        mainTabbedPane.addTab("Help", null, helpPanel, null);
        helpPanel.setLayout(null);
        helpPanel.setPreferredSize(INTERNAL_TAB_SIZE);
        JTextPane txtpnAltJ = new JTextPane();
        txtpnAltJ.setOpaque(false);
        txtpnAltJ.setBackground(noBackground);
        txtpnAltJ.setEditable(false);
        txtpnAltJ.setFont(fontLabel);
        txtpnAltJ.setBounds(12, 39, 121, 226);
        helpPanel.add(txtpnAltJ);
        txtpnAltJ.setText("CTR + 1-0:\r\nALT + 1-0:\r\n\r\nALT + ENT:\r\nALT + V:\r\nALT + R:\r\nALT + T:\r\nALT + G:\r\nALT + D:\r\nALT + C:\r\nALT + P:\r\nALT + F:\r\nTAB:");
        JTextPane txtpnFullscreenNtsc = new JTextPane();
        txtpnFullscreenNtsc.setOpaque(false);
        txtpnFullscreenNtsc.setBackground(noBackground);
        txtpnFullscreenNtsc.setEditable(false);
        txtpnFullscreenNtsc.setText("Save State\r\nLoad State\r\n\r\nFullscreen\r\nNTSC / PAL\r\nCRT Modes\r\nCRT Filter\r\nShow info\r\nDebug Modes\r\nCollisions\r\nPause\r\nNext Frame\r\nFast Speed");
        txtpnFullscreenNtsc.setFont(fontLabel);
        txtpnFullscreenNtsc.setBounds(95, 39, 145, 226);
        helpPanel.add(txtpnFullscreenNtsc);
        JTextPane txtpnAltF = new JTextPane();
        txtpnAltF.setOpaque(false);
        txtpnAltF.setBackground(noBackground);
        txtpnAltF.setEditable(false);
        txtpnAltF.setText("ALT + F1:\r\nALT + F5:\r\nALT + F6:\r\nF7:\r\nF8:\r\n\r\nDrag/Drop or Copy/Paste of files and URLs\r\n\r\nSHIFT + Arrows:\r\nSHIFT-ALT + Arrows:\r\nCTR-SHIFT + Arrows:\r\nCTR-ALT + Arrows:\r\nBACKSPACE:");
        txtpnAltF.setFont(fontLabel);
        txtpnAltF.setBounds(201, 39, 309, 226);
        helpPanel.add(txtpnAltF);
        JTextPane txtpnFryConsoleLoad = new JTextPane();
        txtpnFryConsoleLoad.setOpaque(false);
        txtpnFryConsoleLoad.setBackground(noBackground);
        txtpnFryConsoleLoad.setEditable(false);
        txtpnFryConsoleLoad.setText("Fry Console\r\nLoad Cartridge\r\nwith no Power Cycle\r\nRemove Cartridge\nSave State file");
        txtpnFryConsoleLoad.setFont(fontLabel);
        txtpnFryConsoleLoad.setBounds(277, 39, 194, 117);
        helpPanel.add(txtpnFryConsoleLoad);
        JTextPane txtpnDisplayOriginDisplay = new JTextPane();
        txtpnDisplayOriginDisplay.setOpaque(false);
        txtpnDisplayOriginDisplay.setBackground(noBackground);
        txtpnDisplayOriginDisplay.setEditable(false);
        txtpnDisplayOriginDisplay.setText("\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nScreen Size\r\nScreen Scale\r\nViewport Size\r\nViewport Origin\r\nScreen Defaults");
        txtpnDisplayOriginDisplay.setFont(fontLabel);
        txtpnDisplayOriginDisplay.setBounds(340, 39, 139, 226);
        helpPanel.add(txtpnDisplayOriginDisplay);
        JLabel lblHotKeys = new JLabel();
        lblHotKeys.setHorizontalAlignment(SwingConstants.CENTER);
        lblHotKeys.setText("Hot Keys");
        lblHotKeys.setOpaque(false);
        lblHotKeys.setFont(fontLabelBold);
        lblHotKeys.setBounds(11, 10, 446, 21);
        helpPanel.add(lblHotKeys);
        {
            JPanel aboutPanel = new JPanel();
            aboutPanel.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
            aboutPanel.setBackground(UIManager.getColor("Panel.background"));
            mainTabbedPane.addTab("About", null, aboutPanel, null);
            aboutPanel.setLayout(null);
            aboutPanel.setPreferredSize(INTERNAL_TAB_SIZE);
            {
                JLabel lblNewButton = new JLabel("");
                lblNewButton.setBounds(29, 27, 170, 166);
                aboutPanel.add(lblNewButton);
                lblNewButton.setIcon(new ImageIcon(SettingsDialog.class.getResource("/org/javatari/pc/room/settings/images/LogoAbout.png")));
                lblNewButton.setHorizontalAlignment(SwingConstants.CENTER);
                lblNewButton.setVerticalAlignment(SwingConstants.CENTER);
                lblNewButton.setBorder(new DeepBorder(6, new Insets(3, 3, 3, 3)));
            }
            JLabel lblVerion = new JLabel("version " + Parameters.VERSION);
            lblVerion.setHorizontalAlignment(SwingConstants.CENTER);
            lblVerion.setFont(fontLabelMedium);
            lblVerion.setBounds(67, 202, 95, 14);
            aboutPanel.add(lblVerion);
            JLabel lblCreate = new JLabel("Paulo Augusto Peccin");
            lblCreate.setHorizontalAlignment(SwingConstants.CENTER);
            lblCreate.setFont(fontLabelLarge);
            lblCreate.setBounds(241, 67, 173, 19);
            aboutPanel.add(lblCreate);
            JLabel lblCreated = new JLabel("created by");
            lblCreated.setHorizontalAlignment(SwingConstants.CENTER);
            lblCreated.setFont(fontLabelMedium);
            lblCreated.setBounds(259, 44, 137, 21);
            aboutPanel.add(lblCreated);
            {
                JLabel lblOfficialHomepage = new JLabel("official homepage:");
                lblOfficialHomepage.setHorizontalAlignment(SwingConstants.CENTER);
                lblOfficialHomepage.setFont(fontLabelMedium);
                lblOfficialHomepage.setBounds(259, 124, 137, 21);
                aboutPanel.add(lblOfficialHomepage);
            }
            {
                JButton lblHttpjavatariorg = new JButton("http://javatari.org");
                lblHttpjavatariorg.setFocusPainted(false);
                lblHttpjavatariorg.addActionListener(new ActionListener() {

                    public void actionPerformed(ActionEvent e) {
                        officialWebPageAction();
                    }
                });
                lblHttpjavatariorg.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
                lblHttpjavatariorg.setBorder(null);
                lblHttpjavatariorg.setContentAreaFilled(false);
                lblHttpjavatariorg.setBorderPainted(false);
                lblHttpjavatariorg.setHorizontalAlignment(SwingConstants.CENTER);
                lblHttpjavatariorg.setForeground(new Color(40, 100, 230));
                lblHttpjavatariorg.setFont(fontLabelLarge);
                lblHttpjavatariorg.setBounds(250, 146, 154, 19);
                aboutPanel.add(lblHttpjavatariorg);
            }
            {
                JButton lblppeccin = new JButton("@ppeccin");
                lblppeccin.addActionListener(new ActionListener() {

                    public void actionPerformed(ActionEvent e) {
                        twitterPageAction();
                    }
                });
                lblppeccin.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
                lblppeccin.setContentAreaFilled(false);
                lblppeccin.setForeground(new Color(40, 100, 230));
                lblppeccin.setBorderPainted(false);
                lblppeccin.setBorder(null);
                lblppeccin.setHorizontalAlignment(SwingConstants.CENTER);
                lblppeccin.setFont(fontLabelMedium);
                lblppeccin.setBounds(259, 87, 137, 19);
                aboutPanel.add(lblppeccin);
            }
            vmInfo = new JLabel("");
            vmInfo.setHorizontalAlignment(SwingConstants.CENTER);
            vmInfo.setVerticalAlignment(SwingConstants.BOTTOM);
            vmInfo.setFont(fontFields);
            vmInfo.setBounds(11, 239, 450, 20);
            aboutPanel.add(vmInfo);
        }
    }
    {
        JPanel buttonPane = new JPanel();
        getContentPane().add(buttonPane, BorderLayout.SOUTH);
        buttonPane.setLayout(new BorderLayout(0, 0));
        {
            JPanel panel = new JPanel();
            FlowLayout flowLayout = (FlowLayout) panel.getLayout();
            flowLayout.setAlignment(FlowLayout.LEFT);
            buttonPane.add(panel, BorderLayout.WEST);
            defaultsB = new JButton("Defaults");
            defaultsB.setFont(fontLabel);
            defaultsB.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                    defaultsAction();
                }
            });
            panel.add(defaultsB);
            JPanel panel_1 = new JPanel();
            buttonPane.add(panel_1, BorderLayout.EAST);
            {
                closeB = new JButton("Close");
                closeB.setFont(fontLabel);
                panel_1.add(closeB);
                closeB.addActionListener(new ActionListener() {

                    public void actionPerformed(ActionEvent e) {
                        closeAction();
                    }
                });
                closeB.setActionCommand("Cancel");
            }
        // getRootPane().setDefaultButton(okButton);
        }
    }
    keyboardEdittingL = new JLabel("");
    keyboardEdittingL.setHorizontalAlignment(SwingConstants.CENTER);
    keyboardEdittingL.setFont(fontLabel);
    keyboardEdittingL.setBounds(192, 53, 86, 15);
    keyboardPanel.add(keyboardEdittingL);
    joyP0XAxis = new JComboBoxNim();
    joyP0XAxis.setFont(fontFields);
    joyP0XAxis.setModel(new DefaultComboBoxModel(JOY_AXIS_OPTIONS));
    joyP0XAxis.setBounds(19, 130, 44, 23);
    joysticksPanel.add(joyP0XAxis);
    joyP0XAxis.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            joyP0XAxisAction();
        }
    });
    joyP0XAxisL = new JLabel("X Axis");
    joyP0XAxisL.setHorizontalAlignment(SwingConstants.CENTER);
    joyP0XAxisL.setFont(fontLabel);
    joyP0XAxisL.setBounds(12, 116, 58, 15);
    joysticksPanel.add(joyP0XAxisL);
    joyP0YAxis = new JComboBoxNim();
    joyP0YAxis.setFont(fontFields);
    joyP0YAxis.setModel(new DefaultComboBoxModel(JOY_AXIS_OPTIONS));
    joyP0YAxis.setBounds(85, 67, 44, 23);
    joysticksPanel.add(joyP0YAxis);
    joyP0YAxis.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            joyP0YAxisAction();
        }
    });
    JLabel lblVAxis = new JLabel("Y Axis");
    lblVAxis.setHorizontalAlignment(SwingConstants.CENTER);
    lblVAxis.setFont(fontLabel);
    lblVAxis.setBounds(85, 53, 45, 15);
    joysticksPanel.add(lblVAxis);
    joyP1XAxis = new JComboBoxNim();
    joyP1XAxis.setFont(fontFields);
    joyP1XAxis.setModel(new DefaultComboBoxModel(JOY_AXIS_OPTIONS));
    joyP1XAxis.setBounds(407, 130, 44, 23);
    joysticksPanel.add(joyP1XAxis);
    joyP1XAxis.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            joyP1XAxisAction();
        }
    });
    joyP1XAxisL = new JLabel("X Axis");
    joyP1XAxisL.setHorizontalAlignment(SwingConstants.CENTER);
    joyP1XAxisL.setFont(fontLabel);
    joyP1XAxisL.setBounds(400, 116, 58, 15);
    joysticksPanel.add(joyP1XAxisL);
    joyP1YAxis = new JComboBoxNim();
    joyP1YAxis.setFont(fontFields);
    joyP1YAxis.setModel(new DefaultComboBoxModel(JOY_AXIS_OPTIONS));
    joyP1YAxis.setBounds(342, 67, 44, 23);
    joysticksPanel.add(joyP1YAxis);
    joyP1YAxis.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            joyP1YAxisAction();
        }
    });
    JLabel lblP1YAxis = new JLabel("Y Axis");
    lblP1YAxis.setHorizontalAlignment(SwingConstants.CENTER);
    lblP1YAxis.setFont(fontLabel);
    lblP1YAxis.setBounds(342, 53, 45, 15);
    joysticksPanel.add(lblP1YAxis);
    joysticksEdittingL = new JLabel("");
    joysticksEdittingL.setHorizontalAlignment(SwingConstants.CENTER);
    joysticksEdittingL.setFont(fontLabel);
    joysticksEdittingL.setBounds(186, 52, 100, 15);
    joysticksPanel.add(joysticksEdittingL);
    joyP0Device = new JComboBoxNim();
    joyP0Device.setFont(fontFields);
    joyP0Device.setBounds(13, 26, 213, 23);
    joysticksPanel.add(joyP0Device);
    joyP0Device.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            joyP0P1DeviceAction();
        }
    });
    joyP1Device = new JComboBoxNim();
    joyP1Device.setFont(fontFields);
    joyP1Device.setBounds(245, 26, 213, 23);
    joysticksPanel.add(joyP1Device);
    joyP1Device.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            joyP0P1DeviceAction();
        }
    });
    ((JComponent) getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(AWTConsoleControls.KEY_TOGGLE_P1_MODE, KeyEvent.ALT_DOWN_MASK), "ToggleP1Mode");
    ((JComponent) getContentPane()).getActionMap().put("ToggleP1Mode", toggleP1ModeAction);
    ((JComponent) getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(AWTConsoleControls.KEY_TOGGLE_PADDLE, KeyEvent.ALT_DOWN_MASK), "TogglePaddles");
    ((JComponent) getContentPane()).getActionMap().put("TogglePaddles", togglePaddlesAction);
    ((JComponent) getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(AWTConsoleControls.KEY_TOGGLE_JOYSTICK, KeyEvent.ALT_DOWN_MASK), "ToggleJoystick");
    ((JComponent) getContentPane()).getActionMap().put("ToggleJoystick", toggleJoystickAction);
    ((JComponent) getContentPane()).getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(AWTConsoleControls.KEY_CARTRIDGE_FORMAT, KeyEvent.ALT_DOWN_MASK), "CycleROMFormat");
    ((JComponent) getContentPane()).getActionMap().put("CycleROMFormat", cycleROMFormatAction);
    buildFinished = true;
}
Also used : JPanel(javax.swing.JPanel) ImageIcon(javax.swing.ImageIcon) Insets(java.awt.Insets) FlowLayout(java.awt.FlowLayout) ActionEvent(java.awt.event.ActionEvent) JTabbedPane(javax.swing.JTabbedPane) JButton(javax.swing.JButton) ListSelectionEvent(javax.swing.event.ListSelectionEvent) WindowAdapter(java.awt.event.WindowAdapter) Font(java.awt.Font) JTextPane(javax.swing.JTextPane) BorderLayout(java.awt.BorderLayout) ChangeListener(javax.swing.event.ChangeListener) EmptyBorder(javax.swing.border.EmptyBorder) AbstractAction(javax.swing.AbstractAction) JScrollPane(javax.swing.JScrollPane) MouseEvent(java.awt.event.MouseEvent) Color(java.awt.Color) MouseAdapter(java.awt.event.MouseAdapter) JLabel(javax.swing.JLabel) DefaultComboBoxModel(javax.swing.DefaultComboBoxModel) ListSelectionListener(javax.swing.event.ListSelectionListener) ChangeEvent(javax.swing.event.ChangeEvent) ActionListener(java.awt.event.ActionListener) WindowEvent(java.awt.event.WindowEvent) JList(javax.swing.JList)

Example 10 with WindowAdapter

use of java.awt.event.WindowAdapter in project antlr4 by antlr.

the class TreeViewer method showInDialog.

protected static JFrame showInDialog(final TreeViewer viewer) {
    final JFrame dialog = new JFrame();
    dialog.setTitle("Parse Tree Inspector");
    final Preferences prefs = Preferences.userNodeForPackage(TreeViewer.class);
    // Make new content panes
    final Container mainPane = new JPanel(new BorderLayout(5, 5));
    final Container contentPane = new JPanel(new BorderLayout(0, 0));
    contentPane.setBackground(Color.white);
    // Wrap viewer in scroll pane
    JScrollPane scrollPane = new JScrollPane(viewer);
    // Make the scrollpane (containing the viewer) the center component
    contentPane.add(scrollPane, BorderLayout.CENTER);
    JPanel wrapper = new JPanel(new FlowLayout());
    // Add button to bottom
    JPanel bottomPanel = new JPanel(new BorderLayout(0, 0));
    contentPane.add(bottomPanel, BorderLayout.SOUTH);
    JButton ok = new JButton("OK");
    ok.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            dialog.dispatchEvent(new WindowEvent(dialog, WindowEvent.WINDOW_CLOSING));
        }
    });
    wrapper.add(ok);
    // Add an export-to-png button right of the "OK" button
    JButton png = new JButton("Export as PNG");
    png.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            generatePNGFile(viewer, dialog);
        }
    });
    wrapper.add(png);
    bottomPanel.add(wrapper, BorderLayout.SOUTH);
    // Add scale slider
    double lastKnownViewerScale = prefs.getDouble(DIALOG_VIEWER_SCALE_PREFS_KEY, viewer.getScale());
    viewer.setScale(lastKnownViewerScale);
    int sliderValue = (int) ((lastKnownViewerScale - 1.0) * 1000);
    final JSlider scaleSlider = new JSlider(JSlider.HORIZONTAL, -999, 1000, sliderValue);
    scaleSlider.addChangeListener(new ChangeListener() {

        @Override
        public void stateChanged(ChangeEvent e) {
            int v = scaleSlider.getValue();
            viewer.setScale(v / 1000.0 + 1.0);
        }
    });
    bottomPanel.add(scaleSlider, BorderLayout.CENTER);
    // Add a JTree representing the parser tree of the input.
    JPanel treePanel = new JPanel(new BorderLayout(5, 5));
    // An "empty" icon that will be used for the JTree's nodes.
    Icon empty = new EmptyIcon();
    UIManager.put("Tree.closedIcon", empty);
    UIManager.put("Tree.openIcon", empty);
    UIManager.put("Tree.leafIcon", empty);
    Tree parseTreeRoot = viewer.getTree().getRoot();
    TreeNodeWrapper nodeRoot = new TreeNodeWrapper(parseTreeRoot, viewer);
    fillTree(nodeRoot, parseTreeRoot, viewer);
    final JTree tree = new JTree(nodeRoot);
    tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
    tree.addTreeSelectionListener(new TreeSelectionListener() {

        @Override
        public void valueChanged(TreeSelectionEvent e) {
            JTree selectedTree = (JTree) e.getSource();
            TreePath path = selectedTree.getSelectionPath();
            if (path != null) {
                TreeNodeWrapper treeNode = (TreeNodeWrapper) path.getLastPathComponent();
                // Set the clicked AST.
                viewer.setTree((Tree) treeNode.getUserObject());
            }
        }
    });
    treePanel.add(new JScrollPane(tree));
    // Create the pane for both the JTree and the AST
    final JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, treePanel, contentPane);
    mainPane.add(splitPane, BorderLayout.CENTER);
    dialog.setContentPane(mainPane);
    // make viz
    WindowListener exitListener = new WindowAdapter() {

        @Override
        public void windowClosing(WindowEvent e) {
            prefs.putInt(DIALOG_WIDTH_PREFS_KEY, (int) dialog.getSize().getWidth());
            prefs.putInt(DIALOG_HEIGHT_PREFS_KEY, (int) dialog.getSize().getHeight());
            prefs.putDouble(DIALOG_X_PREFS_KEY, dialog.getLocationOnScreen().getX());
            prefs.putDouble(DIALOG_Y_PREFS_KEY, dialog.getLocationOnScreen().getY());
            prefs.putInt(DIALOG_DIVIDER_LOC_PREFS_KEY, splitPane.getDividerLocation());
            prefs.putDouble(DIALOG_VIEWER_SCALE_PREFS_KEY, viewer.getScale());
            dialog.setVisible(false);
            dialog.dispose();
        }
    };
    dialog.addWindowListener(exitListener);
    dialog.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    int width = prefs.getInt(DIALOG_WIDTH_PREFS_KEY, 600);
    int height = prefs.getInt(DIALOG_HEIGHT_PREFS_KEY, 500);
    dialog.setPreferredSize(new Dimension(width, height));
    dialog.pack();
    // After pack(): set the divider at 1/3 (200/600) of the frame.
    int dividerLocation = prefs.getInt(DIALOG_DIVIDER_LOC_PREFS_KEY, 200);
    splitPane.setDividerLocation(dividerLocation);
    if (prefs.getDouble(DIALOG_X_PREFS_KEY, -1) != -1) {
        dialog.setLocation((int) prefs.getDouble(DIALOG_X_PREFS_KEY, 100), (int) prefs.getDouble(DIALOG_Y_PREFS_KEY, 100));
    } else {
        dialog.setLocationRelativeTo(null);
    }
    dialog.setVisible(true);
    return dialog;
}
Also used : ActionEvent(java.awt.event.ActionEvent) WindowAdapter(java.awt.event.WindowAdapter) TreeSelectionListener(javax.swing.event.TreeSelectionListener) Tree(org.antlr.v4.runtime.tree.Tree) ChangeListener(javax.swing.event.ChangeListener) Preferences(java.util.prefs.Preferences) WindowListener(java.awt.event.WindowListener) ActionListener(java.awt.event.ActionListener) ChangeEvent(javax.swing.event.ChangeEvent) TreePath(javax.swing.tree.TreePath) WindowEvent(java.awt.event.WindowEvent) TreeSelectionEvent(javax.swing.event.TreeSelectionEvent)

Aggregations

WindowAdapter (java.awt.event.WindowAdapter)129 WindowEvent (java.awt.event.WindowEvent)128 JPanel (javax.swing.JPanel)37 JButton (javax.swing.JButton)34 BorderLayout (java.awt.BorderLayout)31 JFrame (javax.swing.JFrame)30 Dimension (java.awt.Dimension)29 JLabel (javax.swing.JLabel)26 JScrollPane (javax.swing.JScrollPane)24 ActionEvent (java.awt.event.ActionEvent)21 ActionListener (java.awt.event.ActionListener)19 GridBagConstraints (java.awt.GridBagConstraints)18 GridBagLayout (java.awt.GridBagLayout)18 FlowLayout (java.awt.FlowLayout)17 Insets (java.awt.Insets)13 JTextArea (javax.swing.JTextArea)12 Container (java.awt.Container)11 Frame (java.awt.Frame)10 JDialog (javax.swing.JDialog)9 IOException (java.io.IOException)8