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

📄 client.java

📁 是一个贪吃蛇的游戏
💻 JAVA
字号:
package Login;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

import NetPlayer.NetSnake;
import OnePlayer.OneSnake;
import TwoPlayer.TwoSnake;



public class Client extends JFrame implements ActionListener{
	
	JLabel headLabel;
	JLabel ipLabel,xLabel,yLabel;
	JTextField xHelpText,yHelpText;
	JTextField ipText,xText,yText;
	JRadioButton onePlayer,twoPlayer,netPlayer;
	ButtonGroup bg;
	JButton submit,centel;
	int width=300,height=350;
	Panel northPanel,centerPanel,southPanel;
	
	public Client() {
		super("贪吃蛇登陆器");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		int w=Toolkit.getDefaultToolkit().getScreenSize().width;
		int h=Toolkit.getDefaultToolkit().getScreenSize().height;
		setBounds(w/2-width/2, h/2-height/2, width, height);
		
		setLayout(new BorderLayout());
		
		/*
		 * 总体布局分成三层
		 * North:【标题】
		 * Center:【选择模式】
		 * South:【登录、退出按钮】
		 */
		
		
		/*
		 * North
		 */
		northPanel=new Panel();
		Font f=new Font("黑体",Font.PLAIN,20);
		JLabel loginL=new JLabel("贪吃蛇登录窗口",JLabel.CENTER); 
		loginL.setFont(f);
		northPanel.add(loginL);
		add(northPanel,BorderLayout.NORTH);
		
		
		/*
		 * Center
		 */
		centerPanel=new Panel();
		centerPanel.setLayout(new GridLayout(2,1));
		
			/*
			 * 【选择模式】布局分为两层:p1,p2
			 * p1:三个选择模式
			 * p2:网络模式的连接信息
			 */
		Panel p1=new Panel();
			/*
			 * p1
			 */
		p1.setLayout(new GridLayout(3,1));
		onePlayer=new JRadioButton("个人练习模式");
		twoPlayer=new JRadioButton("双人对战模式");	
		netPlayer=new JRadioButton("网络对战模式");
		bg=new ButtonGroup();
		bg.add(onePlayer);
		bg.add(twoPlayer);
		bg.add(netPlayer);	
		p1.add(onePlayer);
		p1.add(twoPlayer);
		p1.add(netPlayer);
		centerPanel.add(p1);
		Panel p2=new Panel();
			/*
			 * p2
			 */
		p2.setLayout(new FlowLayout());
		ipLabel=new JLabel("服务器 I P:");
		ipText=new JTextField("127.0.0.1",15);
		xLabel=new JLabel("起始坐标X:");
		xText=new JTextField("0",10);
		xText.setEditable(false);
		xHelpText=new JTextField("0=<X<60");
		xHelpText.setForeground(Color.red);
		xHelpText.setEditable(false);
		yLabel=new JLabel("起始坐标Y:");
		yText=new JTextField("0",10);
		yHelpText=new JTextField("0=<Y<60");
		yHelpText.setForeground(Color.red);
		yHelpText.setEditable(false);
		p2.add(ipLabel);
		p2.add(ipText);
		p2.add(xLabel);
		p2.add(xText);
		p2.add(xHelpText);
		p2.add(yLabel);
		p2.add(yText);
		p2.add(yHelpText);
		centerPanel.add(p2);
		add(centerPanel,BorderLayout.CENTER);
		
		/*
		 * South
		 */
		southPanel =new Panel();
		southPanel.setLayout(new GridLayout(1,2));
		submit=new JButton("登录");
		centel=new JButton("退出");
		southPanel.add(submit);
		southPanel.add(centel);
		submit.addActionListener(this);
		centel.addActionListener(this);
		add(southPanel,BorderLayout.SOUTH);
		
		
		setVisible(true);
		setResizable(false);
		
	}
	
	
	public static void main(String[] args) {
		new Client();
	}


	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==submit)
		{
			if(onePlayer.isSelected())
			{
				new OneSnake();
				this.dispose();
			}
			else if(twoPlayer.isSelected())
			{
				new TwoSnake();
				this.dispose();
			}
			else if(netPlayer.isSelected())
			{
			int x=Integer.parseInt(xText.getText());
			int y=Integer.parseInt(yText.getText());
			String ip=ipText.getText();
			if(y<0||y>=60)
			{
				JOptionPane.showMessageDialog(null, "输入错误!","Error", JOptionPane.INFORMATION_MESSAGE);
			}
			else
			{
				this.dispose();
				new NetSnake(x,y,ip);
			}
			}
		}
		else if(e.getSource()==centel)
		{
			this.dispose();
		}
			
	}
}

⌨️ 快捷键说明

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