📄 playerdialog.java
字号:
import java.awt.Point;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
/*
* 创建日期 2005-7-23
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
/**
* @author 叶少伟 TODO 要更改此生成的类型注释的模板,请转至 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
public class PlayerDialog extends JDialog
{
private JFrame owner;
private javax.swing.JPanel jContentPane = null;
private JLabel jLabel = null;
private JTextField nameTextField = null;
private JLabel jLabel1 = null;
private JTextField scoreTextField = null;
private JLabel jLabel2 = null;
private JTextField winTextField = null;
private JLabel jLabel3 = null;
private JTextField lossTextField = null;
private JLabel jLabel4 = null;
private JTextField ipTextField = null;
private JLabel jLabel5 = null;
private JTextField portTextField = null;
private JButton okButton = null;
private JButton resetButton = null;
private JButton cancelButton = null;
private Properties settings;
private FileOutputStream setOutFile;
private FileInputStream setInFile;
private Player player;
/**
* This is the default constructor
*/
public PlayerDialog(JFrame frame, Player p)
{
super(frame);
this.owner = frame;
this.player = p;
settings = new Properties();
// try
// {
// settings.load(new FileInputStream(player.getName() + ".txt"));
// }
// catch(FileNotFoundException e)
// {
// // TODO 自动生成 catch 块
// e.printStackTrace();
// }
// catch(IOException e)
// {
// // TODO 自动生成 catch 块
// e.printStackTrace();
// }
initialize();
this.owner.setEnabled(false);
}
/**
* This method initializes this
*
* @return void
*/
private void initialize()
{
this.setTitle("玩家设置对话框");
this.setSize(364, 237);
this.setContentPane(getJContentPane());
this.setLocation();
this.setVisible(true);
this.addWindowListener(new java.awt.event.WindowAdapter()
{
public void windowClosing(java.awt.event.WindowEvent e)
{
owner.setEnabled(true);
owner.setVisible(true);
PlayerDialog.this.dispose();
}
});
}
private void setLocation()
{
Point point = owner.getLocation();
int width = this.getWidth();
int height = this.getHeight();
int x = (int) (point.getX() + (owner.getWidth() - width) / 2);
x = (x > 1024 - width ? 1024 - width : x);
x = (x < 0 ? 0 : x);
int y = (int) (point.getY() + (owner.getHeight() - height) / 2);
y = (y > 768 - height ? 768 - height : y);
y = (y < 0 ? 0 : y);
setLocation(x, y);
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private javax.swing.JPanel getJContentPane()
{
if(jContentPane == null)
{
jLabel5 = new JLabel();
jLabel4 = new JLabel();
jLabel3 = new JLabel();
jLabel2 = new JLabel();
jLabel1 = new JLabel();
jLabel = new JLabel();
jContentPane = new javax.swing.JPanel();
jContentPane.setLayout(null);
jLabel.setBounds(22, 21, 43, 23);
jLabel.setText("姓名:");
jLabel1.setBounds(184, 21, 43, 23);
jLabel1.setText("得分:");
jLabel2.setBounds(22, 65, 43, 23);
jLabel2.setText("胜局:");
jLabel3.setBounds(184, 65, 43, 23);
jLabel3.setText("败局:");
jLabel4.setBounds(22, 109, 57, 23);
jLabel4.setText("服务器:");
jLabel5.setBounds(184, 109, 43, 23);
jLabel5.setText("端口:");
jContentPane.add(jLabel, null);
jContentPane.add(getNameTextField(), null);
jContentPane.add(jLabel1, null);
jContentPane.add(getScoreTextField(), null);
jContentPane.add(jLabel2, null);
jContentPane.add(getWinTextField(), null);
jContentPane.add(jLabel3, null);
jContentPane.add(getLossTextField(), null);
jContentPane.add(jLabel4, null);
jContentPane.add(getIpTextField(), null);
jContentPane.add(jLabel5, null);
jContentPane.add(getPortTextField(), null);
jContentPane.add(getOkButton(), null);
jContentPane.add(getResetButton(), null);
jContentPane.add(getCancelButton(), null);
}
return jContentPane;
}
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private JTextField getNameTextField()
{
if(nameTextField == null)
{
nameTextField = new JTextField();
nameTextField.setBounds(71, 21, 100, 23);
nameTextField.setText(this.player.getName());
}
return nameTextField;
}
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private JTextField getScoreTextField()
{
if(scoreTextField == null)
{
scoreTextField = new JTextField();
scoreTextField.setBounds(237, 21, 100, 23);
scoreTextField.setText(this.player.getScore());
scoreTextField.setEditable(false);
}
return scoreTextField;
}
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private JTextField getWinTextField()
{
if(winTextField == null)
{
winTextField = new JTextField();
winTextField.setBounds(71, 65, 100, 23);
winTextField.setText(this.player.getWinTime());
winTextField.setEditable(false);
}
return winTextField;
}
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private JTextField getLossTextField()
{
if(lossTextField == null)
{
lossTextField = new JTextField();
lossTextField.setBounds(237, 65, 100, 23);
lossTextField.setText(this.player.getLossTime());
lossTextField.setEditable(false);
}
return lossTextField;
}
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private JTextField getIpTextField()
{
if(ipTextField == null)
{
ipTextField = new JTextField();
ipTextField.setBounds(71, 109, 100, 23);
ipTextField.setText(this.player.getSIp());
}
return ipTextField;
}
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private JTextField getPortTextField()
{
if(portTextField == null)
{
portTextField = new JTextField();
portTextField.setBounds(237, 109, 100, 23);
portTextField.setText("" + this.player.getPort());
}
return portTextField;
}
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getOkButton()
{
if(okButton == null)
{
okButton = new JButton();
okButton.setBounds(44, 158, 64, 25);
okButton.setText("确定");
okButton.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
String name = nameTextField.getText();
if(name.equals(""))
{
JOptionPane.showMessageDialog(PlayerDialog.this,
"请输入玩家姓名!", "提示", JOptionPane.WARNING_MESSAGE);
nameTextField.grabFocus();
return;
}
String sip = ipTextField.getText();
if(sip.equals(""))
{
JOptionPane.showMessageDialog(PlayerDialog.this,
"请输入服务器IP地址!", "提示",
JOptionPane.WARNING_MESSAGE);
ipTextField.grabFocus();
return;
}
if(!isIP(sip))
{
JOptionPane.showMessageDialog(PlayerDialog.this,
"请输入正确的IP地址!", "提示",
JOptionPane.WARNING_MESSAGE);
return;
}
String port = portTextField.getText();
if(port.equals(""))
{
JOptionPane.showMessageDialog(PlayerDialog.this,
"请输入端口号!", "提示", JOptionPane.WARNING_MESSAGE);
portTextField.grabFocus();
return;
}
try
{
int p = Integer.parseInt(port);
if(p < 0 || p > 65535)
{
JOptionPane.showMessageDialog(PlayerDialog.this,
"请输入正确的端口号!", "提示",
JOptionPane.WARNING_MESSAGE);
return;
}
}
catch(Exception ex)
{
JOptionPane
.showMessageDialog(PlayerDialog.this,
"请输入正确的端口号!", "提示",
JOptionPane.WARNING_MESSAGE);
return;
}
try
{
if(!name.equals(player.getName())&&new File(name + ".txt").exists())
{
if(JOptionPane.showConfirmDialog(PlayerDialog.this,
"此玩家已存在,是否修改此玩家的信息?", "提示",
JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE) == JOptionPane.NO_OPTION)
{
setInFile = new FileInputStream(name + ".txt");
settings.load(setInFile);
setInFile.close();
nameTextField.setText(settings
.getProperty("name"));
scoreTextField.setText(settings
.getProperty("score"));
winTextField.setText(settings
.getProperty("winTime"));
lossTextField.setText(settings
.getProperty("lossTime"));
ipTextField
.setText(settings.getProperty("sip"));
portTextField.setText(settings
.getProperty("port"));
PlayerDialog.this.update(PlayerDialog.this.getGraphics());
player.setSetting(settings);
return;
}
}
settings.setProperty("name", name);
settings.setProperty("sip", sip);
settings.setProperty("port", port);
settings.setProperty("score", scoreTextField.getText());
settings.setProperty("winTime", winTextField.getText());
settings.setProperty("lossTime", lossTextField
.getText());
settings.setProperty("cip", player.getCIp());
player.setSetting(settings);
setOutFile = new FileOutputStream(name + ".txt");
settings.store(setOutFile, "Player information:");
setOutFile.close();
setOutFile = new FileOutputStream("Player.txt");
settings.store(setOutFile, "Player information:");
setOutFile.close();
}
catch(FileNotFoundException e1)
{
// TODO 自动生成 catch 块
e1.printStackTrace();
}
catch(IOException e1)
{
// TODO 自动生成 catch 块
e1.printStackTrace();
}
owner.setEnabled(true);
owner.setVisible(true);
dispose();
}
});
}
return okButton;
}
public static boolean isIP(String strIp)
{
String pattern = "(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])"
+ "(\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])){3}";
if(strIp.matches(pattern))
{
return true;
}
return false;
}
/**
* This method initializes jButton1
*
* @return javax.swing.JButton
*/
private JButton getResetButton()
{
if(resetButton == null)
{
resetButton = new JButton();
resetButton.setBounds(141, 158, 64, 25);
resetButton.setText("默认");
resetButton.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
nameTextField.setText("Player1");
scoreTextField.setText("0");
winTextField.setText("0");
lossTextField.setText("0");
ipTextField.setText("127.0.0.1");
portTextField.setText("5206");
}
});
}
return resetButton;
}
/**
* This method initializes jButton2
*
* @return javax.swing.JButton
*/
private JButton getCancelButton()
{
if(cancelButton == null)
{
cancelButton = new JButton();
cancelButton.setBounds(238, 158, 64, 25);
cancelButton.setText("取消");
cancelButton.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
owner.setEnabled(true);
owner.setVisible(true);
PlayerDialog.this.dispose();
}
});
}
return cancelButton;
}
} // @jve:decl-index=0:visual-constraint="10,10"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -