hostdialog.java

来自「MegaMek is a networked Java clone of Bat」· Java 代码 · 共 204 行

JAVA
204
字号
package megamek.client.ui.AWT;import megamek.common.preference.PreferenceManager;import megamek.common.preference.IClientPreferences;import java.awt.Dialog;import java.awt.Label;import java.awt.TextField;import java.awt.Checkbox;import java.awt.Button;import java.awt.Frame;import java.awt.GridBagLayout;import java.awt.GridBagConstraints;import java.awt.Insets;import java.awt.event.ActionListener;import java.awt.event.ItemListener;import java.awt.event.ItemEvent;import java.awt.event.ActionEvent;/** * here's a quick class for the host new game diaglogue box */public class HostDialog extends Dialog implements ActionListener {    public String name;    public String serverPass;    public int port;    public boolean register;    public String metaserver;    public int goalPlayers;    protected Label yourNameL, serverPassL, portL;    protected TextField yourNameF, serverPassF, portF;    protected Checkbox registerC;    protected Label     metaserverL;    protected TextField metaserverF;    protected Label     goalL;    protected TextField goalF;    protected Button okayB, cancelB;    public HostDialog(Frame frame) {        super(frame, Messages.getString("MegaMek.HostDialog.title"), true); //$NON-NLS-1$        yourNameL = new Label(Messages.getString("MegaMek.yourNameL"), Label.RIGHT); //$NON-NLS-1$        serverPassL = new Label(Messages.getString("MegaMek.serverPassL"), Label.RIGHT); //$NON-NLS-1$        portL = new Label(Messages.getString("MegaMek.portL"), Label.RIGHT); //$NON-NLS-1$        yourNameF = new TextField(PreferenceManager.getClientPreferences().getLastPlayerName(), 16);        yourNameF.addActionListener(this);        serverPassF = new TextField(PreferenceManager.getClientPreferences().getLastServerPass(), 16);        serverPassF.addActionListener(this);        portF = new TextField(PreferenceManager.getClientPreferences().getLastServerPort() + "", 4); //$NON-NLS-1$        portF.addActionListener(this);        IClientPreferences cs = PreferenceManager.getClientPreferences();        metaserver = cs.getMetaServerName();        metaserverL = new Label (Messages.getString("MegaMek.metaserverL"), Label.RIGHT); //$NON-NLS-1$        metaserverF = new TextField (metaserver);        metaserverL.setEnabled (register);        metaserverF.setEnabled (register);        int goalNumber = cs.getGoalPlayers();        goalL = new Label (Messages.getString("MegaMek.goalL"), Label.RIGHT); //$NON-NLS-1$        goalF = new TextField (Integer.toString(goalNumber), 2);        goalL.setEnabled (register);        goalF.setEnabled (register);        registerC = new Checkbox (Messages.getString("MegaMek.registerC")); //$NON-NLS-1$        register = false;        registerC.setState (register);        registerC.addItemListener( new ItemListener() {                public void itemStateChanged (ItemEvent event) {                    boolean state = false;                    if (ItemEvent.SELECTED == event.getStateChange()) {                        state = true;                    }                    metaserverL.setEnabled (state);                    metaserverF.setEnabled (state);                    goalL.setEnabled (state);                    goalF.setEnabled (state);                }            });        okayB = new Button(Messages.getString("Okay")); //$NON-NLS-1$        okayB.setActionCommand("done"); //$NON-NLS-1$        okayB.addActionListener(this);        okayB.setSize(80, 24);        cancelB = new Button(Messages.getString("Cancel")); //$NON-NLS-1$        cancelB.setActionCommand("cancel"); //$NON-NLS-1$        cancelB.addActionListener(this);        cancelB.setSize(80, 24);        GridBagLayout gridbag = new GridBagLayout();        GridBagConstraints c = new GridBagConstraints();        setLayout(gridbag);        c.fill = GridBagConstraints.NONE;        c.weightx = 0.0;        c.weighty = 0.0;        c.insets = new Insets(5, 5, 5, 5);        c.gridwidth = 1;        c.anchor = GridBagConstraints.EAST;        gridbag.setConstraints(yourNameL, c);        add(yourNameL);        c.gridwidth = GridBagConstraints.REMAINDER;        c.anchor = GridBagConstraints.WEST;        gridbag.setConstraints(yourNameF, c);        add(yourNameF);        c.gridwidth = 1;        c.anchor = GridBagConstraints.EAST;        gridbag.setConstraints(serverPassL, c);        add(serverPassL);        c.gridwidth = GridBagConstraints.REMAINDER;        c.anchor = GridBagConstraints.WEST;        gridbag.setConstraints(serverPassF, c);        add(serverPassF);        c.gridwidth = 1;        c.anchor = GridBagConstraints.EAST;        gridbag.setConstraints(portL, c);        add(portL);        c.gridwidth = GridBagConstraints.REMAINDER;        c.anchor = GridBagConstraints.WEST;        gridbag.setConstraints(portF, c);        add(portF);        /* WORK IN PROGRESS **        c.gridwidth = GridBagConstraints.REMAINDER;        c.anchor = GridBagConstraints.WEST;        gridbag.setConstraints(registerC, c);        add(registerC);        c.gridwidth = 1;        c.anchor = GridBagConstraints.EAST;        gridbag.setConstraints(metaserverL, c);        add(metaserverL);        c.gridwidth = GridBagConstraints.REMAINDER;        c.anchor = GridBagConstraints.WEST;        gridbag.setConstraints(metaserverF, c);        add(metaserverF);        c.gridwidth = 1;        c.anchor = GridBagConstraints.EAST;        gridbag.setConstraints(goalL, c);        add(goalL);        c.gridwidth = GridBagConstraints.REMAINDER;        c.anchor = GridBagConstraints.WEST;        gridbag.setConstraints(goalF, c);        add(goalF);        /* WORK IN PROGRESS **/        c.ipadx = 20;        c.ipady = 5;        c.gridwidth = 1;        c.anchor = GridBagConstraints.CENTER;        gridbag.setConstraints(okayB, c);        add(okayB);        c.gridwidth = GridBagConstraints.REMAINDER;        gridbag.setConstraints(cancelB, c);        add(cancelB);        pack();        setResizable(false);        setLocation(            frame.getLocation().x + frame.getSize().width / 2 - getSize().width / 2,            frame.getLocation().y + frame.getSize().height / 2 - getSize().height / 2);    }    public void actionPerformed(ActionEvent e) {        if (!e.getActionCommand().equals("cancel")) { //$NON-NLS-1$            try {                name = yourNameF.getText();                serverPass = serverPassF.getText();                register = registerC.getState();                metaserver = metaserverF.getText();                port = Integer.parseInt (portF.getText());                goalPlayers = Integer.parseInt (goalF.getText());            } catch (NumberFormatException ex) {                System.err.println(ex.getMessage());                port = 2346;                goalPlayers = 2;            }            // update settings            PreferenceManager.getClientPreferences().setLastPlayerName(name);            PreferenceManager.getClientPreferences().setLastServerPass(serverPass);            PreferenceManager.getClientPreferences().setLastServerPort(port);            PreferenceManager.getClientPreferences().setValue("megamek.megamek.metaservername", //$NON-NLS-1$                                        metaserver);            PreferenceManager.getClientPreferences().setValue("megamek.megamek.goalplayers", //$NON-NLS-1$                                        Integer.toString (goalPlayers));        }        setVisible(false);    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?