⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 playerdialog.java

📁 局域网斗地主框架,好象没有card的功能不能打牌
💻 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 + -