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;
}
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);
}
});
}
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();
}
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);
}
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;
}
Aggregations