Search in sources :

Example 16 with Panel

use of java.awt.Panel in project jdk8u_jdk by JetBrains.

the class VSyncedBufferStrategyTest method createAndShowBSFrame.

private static Frame createAndShowBSFrame() {
    final Frame f = new Frame("Not V-Synced");
    int myNum;
    synchronized (VSyncedBufferStrategyTest.class) {
        myNum = frameNum++;
    }
    final VSyncedBufferStrategyTest component = new VSyncedBufferStrategyTest(false);
    f.setIgnoreRepaint(true);
    f.add("Center", component);
    Panel p = new Panel();
    Button b = new Button("Request VSync");
    b.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            f.setTitle("Possibly V-Synced");
            component.setRequestVSync(true);
        }
    });
    p.add(b);
    b = new Button("Relinquish VSync");
    b.addActionListener(new ActionListener() {

        int inc = 1;

        public void actionPerformed(ActionEvent e) {
            f.setTitle("Not V-Synced");
            component.setRequestVSync(false);
            f.setSize(f.getWidth() + inc, f.getHeight());
            inc = -inc;
        }
    });
    p.add(b);
    f.add("South", p);
    f.pack();
    f.setLocation(10, myNum * f.getHeight());
    f.setVisible(true);
    f.addWindowListener(new WindowAdapter() {

        @Override
        public void windowClosing(WindowEvent e) {
            component.done = true;
            f.dispose();
        }

        @Override
        public void windowClosed(WindowEvent e) {
            component.done = true;
        }
    });
    return f;
}
Also used : Panel(java.awt.Panel) JPanel(javax.swing.JPanel) JFrame(javax.swing.JFrame) Frame(java.awt.Frame) ActionListener(java.awt.event.ActionListener) Button(java.awt.Button) JButton(javax.swing.JButton) ActionEvent(java.awt.event.ActionEvent) WindowEvent(java.awt.event.WindowEvent) WindowAdapter(java.awt.event.WindowAdapter)

Example 17 with Panel

use of java.awt.Panel in project JSettlers2 by jdmonin.

the class NewGameOptionsFrame method initInterface_Pref1.

/**
 * Set up one preference row (desc label, checkbox and/or input box)
 * for {@link #initInterface_UserPrefs(JPanel, GridBagLayout, GridBagConstraints)}.
 * @param bp  Add to this panel
 * @param gbl Use this layout
 * @param gbc Use these constraints
 * @param key Pref key name to update in {@link #localPrefs} when changed,
 *     such as {@link SOCPlayerClient#PREF_BOT_TRADE_REJECT_SEC}, or {@code null}.
 *     If {@code hasBool} but not {@code hasInt}, will store {@link Boolean#TRUE} or {@code .FALSE} as key's value.
 *     If {@code hasInt} and can't parse text field contents, stores {@link Integer} 0 as key's value.
 *     If both bool and int, will store an {@code Integer} which is negative if checkbox is unchecked.
 * @param desc  Preference description text to show. If {@code hasInt}, must contain {@code "#"} placeholder.
 * @param hasBool  True if preference has a boolean value
 * @param hasInt   True if preference has an integer value
 * @param initBoolVal  Pref's initial boolean value, for checkbox; ignored unless {@code hasBool}
 * @param initIntVal   Pref's initial integer value, for input box; ignored unless {@code hasInt}
 * @param pcl  Callback when checkbox is checked/unchecked by clicking the box or its label, or {@code null}
 * @throws IllegalArgumentException if {@code hasInt} but {@code desc} doesn't contain {@code "#"},
 *     or if both {@code key} and {@code pcl} are {@code null}
 * @since 1.2.00
 */
private void initInterface_Pref1(final JPanel bp, final GridBagLayout gbl, final GridBagConstraints gbc, final String key, final String desc, final boolean hasBool, final boolean hasInt, final boolean initBoolVal, final int initIntVal, final PrefCheckboxListener pcl) throws IllegalArgumentException {
    if ((key == null) && (pcl == null))
        throw new IllegalArgumentException("null key, pcl");
    // reminder: same gbc widths/weights are used in initInterface_Opt1
    final Checkbox cb;
    final IntTextField itf = (hasInt) ? new IntTextField(initIntVal, 3) : null;
    final MouseListener ml;
    if (hasBool) {
        cb = new Checkbox();
        cb.setState(initBoolVal);
        gbc.gridwidth = 1;
        gbc.weightx = 0;
        gbl.setConstraints(cb, gbc);
        bp.add(cb);
        ml = new MouseAdapter() {

            @Override
            public void mouseClicked(MouseEvent e) {
                final boolean makeChecked = !cb.getState();
                cb.setState(makeChecked);
                if (pcl != null)
                    pcl.stateChanged(makeChecked);
                if (key != null) {
                    if (hasInt) {
                        int iv = 0;
                        try {
                            iv = Integer.parseInt(itf.getText().trim());
                            if (!makeChecked)
                                iv = -iv;
                        } catch (NumberFormatException nfe) {
                        }
                        localPrefs.put(key, Integer.valueOf(iv));
                    } else {
                        localPrefs.put(key, (makeChecked) ? Boolean.TRUE : Boolean.FALSE);
                    }
                }
                e.consume();
            }
        };
    } else {
        cb = null;
        ml = null;
    }
    final int placeholderIdx;
    // null or holds label with start of desc, int input field, label with rest of desc
    final Panel prefp;
    if (hasInt) {
        placeholderIdx = desc.indexOf('#');
        if (placeholderIdx == -1)
            throw new IllegalArgumentException("missing '#'");
        // with FlowLayout
        prefp = new Panel();
        try {
            FlowLayout fl = (FlowLayout) (prefp.getLayout());
            fl.setAlignment(FlowLayout.LEFT);
            fl.setVgap(0);
            fl.setHgap(0);
        } catch (Exception fle) {
        }
    } else {
        placeholderIdx = -1;
        prefp = null;
    }
    // Any text to the left of placeholder in desc?
    if (placeholderIdx > 0) {
        Label L = new Label(desc.substring(0, placeholderIdx));
        L.setForeground(LABEL_TXT_COLOR);
        prefp.add(L);
        L.addMouseListener(ml);
    }
    if (hasInt) {
        prefp.add(itf);
        // for ESC/ENTER
        itf.addKeyListener(this);
        if ((cb != null) || (key != null))
            itf.addTextListener(new // for value store or enable/disable
            TextListener() {

                public void textValueChanged(TextEvent arg0) {
                    final String newText = itf.getText().trim();
                    final boolean notEmpty = (newText.length() > 0);
                    if (cb != null) {
                        if (notEmpty != cb.getState()) {
                            cb.setState(notEmpty);
                            if (pcl != null)
                                pcl.stateChanged(notEmpty);
                        }
                    }
                    if (key != null) {
                        int iv = 0;
                        try {
                            iv = Integer.parseInt(newText);
                            if ((cb != null) && !cb.getState())
                                iv = -iv;
                        } catch (NumberFormatException nfe) {
                        }
                        localPrefs.put(key, Integer.valueOf(iv));
                    }
                }
            });
    }
    // the text label if there is no placeholder.
    if (placeholderIdx + 1 < desc.length()) {
        Label L = new Label(desc.substring(placeholderIdx + 1));
        L.setForeground(LABEL_TXT_COLOR);
        if (prefp != null) {
            prefp.add(L);
        } else {
            gbc.gridwidth = GridBagConstraints.REMAINDER;
            gbc.weightx = 1;
            gbl.setConstraints(L, gbc);
            bp.add(L);
        }
        L.addMouseListener(ml);
    }
    if (prefp != null) {
        gbc.gridwidth = GridBagConstraints.REMAINDER;
        gbc.weightx = 1;
        gbl.setConstraints(prefp, gbc);
        bp.add(prefp);
    }
    if (cb != null)
        cb.addItemListener(new ItemListener() {

            public void itemStateChanged(ItemEvent ie) {
                pcl.stateChanged(ie.getStateChange() == ItemEvent.SELECTED);
            }
        });
}
Also used : TextEvent(java.awt.event.TextEvent) ItemEvent(java.awt.event.ItemEvent) MouseEvent(java.awt.event.MouseEvent) FlowLayout(java.awt.FlowLayout) MouseAdapter(java.awt.event.MouseAdapter) Label(java.awt.Label) TextListener(java.awt.event.TextListener) Panel(java.awt.Panel) JPanel(javax.swing.JPanel) MouseListener(java.awt.event.MouseListener) Checkbox(java.awt.Checkbox) ItemListener(java.awt.event.ItemListener)

Example 18 with Panel

use of java.awt.Panel in project JSettlers2 by jdmonin.

the class SOCAccountClient method initInterface_conn.

/**
 * Connect setup for username and password authentication: {@link #connPanel} / {@link #CONN_PANEL}.
 * Called if server doesn't have {@link SOCServerFeatures#FEAT_OPEN_REG}.
 * Calls {@link #validate()} and {@link #conn_user}.{@link java.awt.Component#requestFocus() requestFocus()}.
 * @since 1.1.19
 * @see #initVisualElements()
 */
private void initInterface_conn() {
    Panel pconn = new Panel();
    Label L;
    GridBagLayout gbl = new GridBagLayout();
    GridBagConstraints gbc = new GridBagConstraints();
    pconn.setLayout(gbl);
    gbc.fill = GridBagConstraints.BOTH;
    // heading row
    L = new Label(strings.get("account.common.must_auth"));
    // "You must log in with a username and password before you can create accounts."
    L.setAlignment(Label.CENTER);
    gbc.gridwidth = 4;
    gbl.setConstraints(L, gbc);
    pconn.add(L);
    // Spacing for rest of form's rows
    L = new Label(" ");
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(L, gbc);
    pconn.add(L);
    // blank row
    L = new Label();
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(L, gbc);
    pconn.add(L);
    L = new Label(strings.get("pcli.cpp.server"));
    gbc.gridwidth = 1;
    gbl.setConstraints(L, gbc);
    pconn.add(L);
    L = new Label(host);
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(L, gbc);
    pconn.add(L);
    L = new Label(strings.get("pcli.cpp.port"));
    gbc.gridwidth = 1;
    gbl.setConstraints(L, gbc);
    pconn.add(L);
    L = new Label(Integer.toString(port));
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(L, gbc);
    pconn.add(L);
    L = new Label(strings.get("pcli.cpp.nickname"));
    gbc.gridwidth = 1;
    gbl.setConstraints(L, gbc);
    pconn.add(L);
    conn_user = new TextField(20);
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(conn_user, gbc);
    conn_user.addKeyListener(this);
    pconn.add(conn_user);
    L = new Label(strings.get("pcli.cpp.password"));
    gbc.gridwidth = 1;
    gbl.setConstraints(L, gbc);
    pconn.add(L);
    conn_pass = new TextField(20);
    // OSX: round bullet (option-8)
    conn_pass.setEchoChar((SOCPlayerClient.isJavaOnOSX) ? '\u2022' : '*');
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(conn_pass, gbc);
    conn_pass.addKeyListener(this);
    pconn.add(conn_pass);
    // spacer row
    L = new Label(" ");
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(L, gbc);
    pconn.add(L);
    // Connect and Cancel buttons shouldn't stretch entire width, so they get their own sub-Panel
    Panel btnsRow = new Panel();
    conn_connect = new Button(strings.get("pcli.cpp.connect"));
    conn_connect.addActionListener(this);
    // for win32 keyboard-focus ESC/ENTER
    conn_connect.addKeyListener(this);
    btnsRow.add(conn_connect);
    conn_cancel = new Button(strings.get("base.cancel"));
    conn_cancel.addActionListener(this);
    conn_cancel.addKeyListener(this);
    btnsRow.add(conn_cancel);
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbc.anchor = GridBagConstraints.CENTER;
    gbl.setConstraints(btnsRow, gbc);
    pconn.add(btnsRow);
    // spacer row
    L = new Label(" ");
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(L, gbc);
    pconn.add(L);
    conn_status = new TextField(50);
    conn_status.setEditable(false);
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(conn_status, gbc);
    pconn.add(conn_status);
    connPanel = pconn;
    add(pconn, CONN_PANEL);
    cardLayout.show(this, CONN_PANEL);
    validate();
    conn_user.requestFocus();
}
Also used : Panel(java.awt.Panel) GridBagConstraints(java.awt.GridBagConstraints) GridBagLayout(java.awt.GridBagLayout) Button(java.awt.Button) Label(java.awt.Label) TextField(java.awt.TextField)

Example 19 with Panel

use of java.awt.Panel in project JSettlers2 by jdmonin.

the class SOCAccountClient method initVisualElements.

/**
 * init the visual elements at startup: {@link #MESSAGE_PANEL}, {@link #MAIN_PANEL}.
 * Labels' text assumes self-registration (Open Registration); if this is not the case
 * call {@link #updateLabelsIfNotOpenReg()} afterwards.
 * @see #initInterface_conn()
 */
protected void initVisualElements() {
    char pwchar = SOCPlayerClient.isJavaOnOSX ? '\u2022' : '*';
    setFont(new Font("SansSerif", Font.PLAIN, 12));
    nick = new TextField(20);
    pass = new TextField(10);
    pass.setEchoChar(pwchar);
    pass2 = new TextField(10);
    pass2.setEchoChar(pwchar);
    email = new TextField(50);
    status = new TextField(50);
    status.setEditable(false);
    // "Create Account"
    submit = new Button(strings.get("account.okcreate"));
    submitLock = false;
    submit.addActionListener(this);
    ac = null;
    GridBagLayout gbl = new GridBagLayout();
    GridBagConstraints c = new GridBagConstraints();
    Panel mainPane = new Panel(gbl);
    c.fill = GridBagConstraints.BOTH;
    Label l;
    promptLabel = new Label(strings.get("account.create.prompt.enter_your_info"));
    // "To create an account, please enter your information."
    promptLabel.setAlignment(Label.CENTER);
    c.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(promptLabel, c);
    mainPane.add(promptLabel);
    // spacer
    l = new Label();
    c.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(l, c);
    mainPane.add(l);
    // "Your Nickname:"
    nickLabel = new Label(strings.get("account.create.nickname.your"));
    c.gridwidth = 1;
    gbl.setConstraints(nickLabel, c);
    mainPane.add(nickLabel);
    nickTTip = new AWTToolTip(strings.get("account.create.nickname.your.tip"), nick);
    // "This will be your username."
    c.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(nick, c);
    mainPane.add(nick);
    l = new Label();
    c.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(l, c);
    mainPane.add(l);
    // "Password:"
    l = new Label(strings.get("account.create.password"));
    c.gridwidth = 1;
    gbl.setConstraints(l, c);
    mainPane.add(l);
    c.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(pass, c);
    mainPane.add(pass);
    l = new Label();
    c.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(l, c);
    mainPane.add(l);
    // "Password (again):"
    l = new Label(strings.get("account.create.password.again"));
    c.gridwidth = 1;
    gbl.setConstraints(l, c);
    mainPane.add(l);
    c.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(pass2, c);
    mainPane.add(pass2);
    l = new Label();
    c.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(l, c);
    mainPane.add(l);
    // "Email (optional):"
    l = new Label(strings.get("account.create.email"));
    c.gridwidth = 1;
    gbl.setConstraints(l, c);
    mainPane.add(l);
    c.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(email, c);
    mainPane.add(email);
    l = new Label();
    c.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(l, c);
    mainPane.add(l);
    l = new Label();
    c.gridwidth = 1;
    gbl.setConstraints(l, c);
    mainPane.add(l);
    c.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(submit, c);
    mainPane.add(submit);
    l = new Label();
    c.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(l, c);
    mainPane.add(l);
    c.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(status, c);
    mainPane.add(status);
    // message label that takes up the whole pane
    messageLabel = new Label("", Label.CENTER);
    Panel messagePane = new Panel(new BorderLayout());
    messagePane.add(messageLabel, BorderLayout.CENTER);
    // all together now...
    cardLayout = new CardLayout();
    setLayout(cardLayout);
    // shown first
    add(messagePane, MESSAGE_PANEL);
    add(mainPane, MAIN_PANEL);
}
Also used : Panel(java.awt.Panel) CardLayout(java.awt.CardLayout) GridBagConstraints(java.awt.GridBagConstraints) GridBagLayout(java.awt.GridBagLayout) BorderLayout(java.awt.BorderLayout) Button(java.awt.Button) Label(java.awt.Label) TextField(java.awt.TextField) Font(java.awt.Font)

Example 20 with Panel

use of java.awt.Panel in project JSettlers2 by jdmonin.

the class SOCConnectOrPracticePanel method initInterface_run.

/**
 * panel_run setup
 */
private Panel initInterface_run() {
    Panel prun = new Panel();
    Label L;
    GridBagLayout gbl = new GridBagLayout();
    GridBagConstraints gbc = new GridBagConstraints();
    prun.setLayout(gbl);
    gbc.fill = GridBagConstraints.BOTH;
    // heading row
    // "Start a Server"
    L = new Label(strings.get("pcli.cpp.startserv"));
    L.setAlignment(Label.CENTER);
    L.setBackground(HEADER_LABEL_BG);
    L.setForeground(HEADER_LABEL_FG);
    gbc.gridwidth = 4;
    gbl.setConstraints(L, gbc);
    prun.add(L);
    // Spacing for rest of form's rows
    L = new Label(" ");
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(L, gbc);
    prun.add(L);
    // blank row
    L = new Label();
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(L, gbc);
    prun.add(L);
    // Port#
    L = new Label(strings.get("pcli.cpp.port"));
    gbc.gridwidth = 1;
    gbl.setConstraints(L, gbc);
    prun.add(L);
    run_servport = new TextField(15);
    {
        String svp = Integer.toString(clientNetwork.getPort());
        run_servport.setText(svp);
        run_servport.setSelectionStart(0);
        run_servport.setSelectionEnd(svp.length());
    }
    gbc.gridwidth = 2;
    gbl.setConstraints(run_servport, gbc);
    // for ESC/ENTER
    run_servport.addKeyListener(this);
    prun.add(run_servport);
    // Spacing for rest of form's rows
    L = new Label(" ");
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbl.setConstraints(L, gbc);
    prun.add(L);
    L = new Label(" ");
    gbc.gridwidth = 1;
    gbl.setConstraints(L, gbc);
    prun.add(L);
    run_startserv = new Button(" " + strings.get("pcli.cpp.start") + " ");
    run_startserv.addActionListener(this);
    // for win32 keyboard-focus
    run_startserv.addKeyListener(this);
    gbl.setConstraints(run_startserv, gbc);
    prun.add(run_startserv);
    run_cancel = new Button(strings.get("base.cancel"));
    run_cancel.addActionListener(this);
    run_cancel.addKeyListener(this);
    gbl.setConstraints(run_cancel, gbc);
    prun.add(run_cancel);
    return prun;
}
Also used : Panel(java.awt.Panel) GridBagConstraints(java.awt.GridBagConstraints) GridBagLayout(java.awt.GridBagLayout) Button(java.awt.Button) Label(java.awt.Label) TextField(java.awt.TextField)

Aggregations

Panel (java.awt.Panel)70 BorderLayout (java.awt.BorderLayout)26 Button (java.awt.Button)25 Label (java.awt.Label)25 Frame (java.awt.Frame)18 GridBagLayout (java.awt.GridBagLayout)17 TextField (java.awt.TextField)17 GridBagConstraints (java.awt.GridBagConstraints)16 JPanel (javax.swing.JPanel)14 Dimension (java.awt.Dimension)13 Insets (java.awt.Insets)10 Point (java.awt.Point)10 Choice (java.awt.Choice)9 FlowLayout (java.awt.FlowLayout)9 Graphics (java.awt.Graphics)9 Checkbox (java.awt.Checkbox)7 GridLayout (java.awt.GridLayout)7 Font (java.awt.Font)6 JButton (javax.swing.JButton)6 Component (java.awt.Component)5