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

📄 mainframe.java

📁 局域网斗地主框架,好象没有card的功能不能打牌
💻 JAVA
字号:
import java.awt.BorderLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;

/*
 * 创建日期 2005-7-22
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */

/**
 * @author 叶少伟 TODO 要更改此生成的类型注释的模板,请转至 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
public class MainFrame extends JFrame
{

	private javax.swing.JPanel	jContentPane		= null;
	private JPanel				userPanel			= null;
	private JTable				playerTable			= null;
	private JScrollPane			playerScrollPane	= null;
	private PlayerTableValue	playerTableValue	= null;			//  @jve:decl-index=0:
	private JPanel				messagePanel		= null;
	private JScrollPane			messageScrollPane	= null;
	private JTextArea			messageTextArea		= null;
	private JTextField			messageTextField	= null;
	private JPanel				controlPanel		= null;
	private JPanel				timePanel			= null;
	private JButton				newButton			= null;
	private JButton				joinButton			= null;
	private JButton				exitButton			= null;
	private GameServer			gServer				= null;
	private GameClient			gClient				= null;
	private Player				player				= null;
	private JButton				playerButton		= null;
	private GamePanel gamePanel = null;
	/**
	 * This method initializes jPanel1
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getUserPanel()
	{
		if(userPanel == null)
		{
			userPanel = new JPanel();
			userPanel.setLayout(new BorderLayout());
			userPanel.setOpaque(false);
			userPanel.setPreferredSize(new java.awt.Dimension(180, 10));
			userPanel
					.setBorder(javax.swing.BorderFactory
							.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));
			userPanel.add(getPlayerScrollPane(), java.awt.BorderLayout.NORTH);
			userPanel.add(getMessagePanel(), java.awt.BorderLayout.CENTER);
			userPanel.add(getControlPanel(), java.awt.BorderLayout.SOUTH);
		}
		return userPanel;
	}

	/**
	 * This method initializes jTable
	 * 
	 * @return javax.swing.JTable
	 */
	private JTable getPlayerTable()
	{
		if(playerTable == null)
		{
			playerTable = new JTable();
			playerTable.setModel(getPlayerTableValue());
			playerTable.setGridColor(new java.awt.Color(100, 169, 238));
			playerTable.getTableHeader().setReorderingAllowed(false);
			playerTable.getColumnModel().getColumn(0).setPreferredWidth(55);
			playerTable.getColumnModel().getColumn(1).setPreferredWidth(45);
			playerTable.getColumnModel().getColumn(2).setPreferredWidth(35);
			playerTable.getColumnModel().getColumn(3).setPreferredWidth(35);
		}
		return playerTable;
	}

	/**
	 * This method initializes jScrollPane
	 * 
	 * @return javax.swing.JScrollPane
	 */
	private JScrollPane getPlayerScrollPane()
	{
		if(playerScrollPane == null)
		{
			playerScrollPane = new JScrollPane();
			playerScrollPane.setViewportView(getPlayerTable());
			playerScrollPane.setPreferredSize(new java.awt.Dimension(453, 70));
		}
		return playerScrollPane;
	}

	/**
	 * This method initializes playerTableValue
	 * 
	 * @return PlayerTableValue
	 */
	private PlayerTableValue getPlayerTableValue()
	{
		if(playerTableValue == null)
		{
			playerTableValue = new PlayerTableValue(playerTable
					.getColumnModel());
		}
		return playerTableValue;
	}

	/**
	 * This method initializes jPanel
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getMessagePanel()
	{
		if(messagePanel == null)
		{
			messagePanel = new JPanel();
			messagePanel.setLayout(new BorderLayout());
			messagePanel.setOpaque(false);
			messagePanel.add(getTimePanel(), java.awt.BorderLayout.NORTH);
			messagePanel.add(getMessageScrollPane(),
					java.awt.BorderLayout.CENTER);
			messagePanel
					.add(getMessageTextField(), java.awt.BorderLayout.SOUTH);
		}
		return messagePanel;
	}

	/**
	 * This method initializes jScrollPane
	 * 
	 * @return javax.swing.JScrollPane
	 */
	private JScrollPane getMessageScrollPane()
	{
		if(messageScrollPane == null)
		{
			messageScrollPane = new JScrollPane();
			messageScrollPane.setViewportView(getMessageTextArea());
		}
		return messageScrollPane;
	}

	/**
	 * This method initializes jTextArea
	 * 
	 * @return javax.swing.JTextArea
	 */
	private JTextArea getMessageTextArea()
	{
		if(messageTextArea == null)
		{
			messageTextArea = new JTextArea();
			messageTextArea.setLineWrap(true);
			messageTextArea.setEditable(false);
			messageTextArea.setForeground(java.awt.Color.red);
		}
		return messageTextArea;
	}

	/**
	 * This method initializes jTextField
	 * 
	 * @return javax.swing.JTextField
	 */
	private JTextField getMessageTextField()
	{
		if(messageTextField == null)
		{
			messageTextField = new JTextField();
			messageTextField.setEditable(false);
			messageTextField
					.addActionListener(new java.awt.event.ActionListener()
					{
						public void actionPerformed(java.awt.event.ActionEvent e)
						{
							if(messageTextField.getText().equals(""))
								return;
							gClient.sendMessage(new Message(Message.STRING,
									player.getName() + " 说: "
											+ messageTextField.getText()));
							messageTextField.setText("");
						}
					});
		}
		return messageTextField;
	}

	/**
	 * This method initializes jPanel
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getControlPanel()
	{
		if(controlPanel == null)
		{
			controlPanel = new JPanel();
			controlPanel.setOpaque(false);
			controlPanel.setPreferredSize(new java.awt.Dimension(10, 150));
			controlPanel.add(getPlayerButton(), null);
			controlPanel.add(getNewButton(), null);
			controlPanel.add(getJoinButton(), null);
			controlPanel.add(getExitButton(), null);
		}
		return controlPanel;
	}

	/**
	 * This method initializes jPanel
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getTimePanel()
	{
		if(timePanel == null)
		{
			timePanel = new JPanel();
			timePanel.setOpaque(false);
			timePanel.setPreferredSize(new java.awt.Dimension(10, 130));
		}
		return timePanel;
	}

	/**
	 * This method initializes jButton
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getNewButton()
	{
		if(newButton == null)
		{
			newButton = new JButton();
			newButton.setText("新建游戏");
			newButton.addActionListener(new java.awt.event.ActionListener()
			{
				public void actionPerformed(java.awt.event.ActionEvent e)
				{
					if(e.getActionCommand().equals("新建游戏"))
					{
						if(player == null)
							player = new Player(player);
						gServer = new GameServer(messageTextField,
								playerButton, newButton, joinButton,
								MainFrame.this, player.getPort());
						gClient = new GameClient(player, messageTextArea,
								messageTextField, playerButton, newButton,
								joinButton, MainFrame.this, playerTableValue, gamePanel);
						newButton.setText("取消游戏");
						joinButton.setEnabled(false);
						playerButton.setEnabled(false);
						messageTextField.setEditable(true);
					}
					else if(e.getActionCommand().equals("取消游戏"))
					{
						if(!gServer.canClose())
						{
							if(JOptionPane.showConfirmDialog(MainFrame.this,
									"还有其它玩家连接到你的游戏,是否要强制退出?", "提示",
									JOptionPane.YES_NO_OPTION,
									JOptionPane.WARNING_MESSAGE) == JOptionPane.NO_OPTION)
							{
								return;
							}
						}
						gServer.colse();
						newButton.setText("新建游戏");
						joinButton.setEnabled(true);
						playerButton.setEnabled(true);
						messageTextField.setEditable(false);
					}
				}
			});
		}
		return newButton;
	}


	/**
	 * This method initializes jButton
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getJoinButton()
	{
		if(joinButton == null)
		{
			joinButton = new JButton();
			joinButton.setText("加入游戏");
			joinButton.addActionListener(new java.awt.event.ActionListener()
			{
				public void actionPerformed(java.awt.event.ActionEvent e)
				{
					if(e.getActionCommand().equals("加入游戏"))
					{
						if(player == null)
							player = new Player(player);
						gClient = new GameClient(player, messageTextArea,
								messageTextField, playerButton, newButton,
								joinButton, MainFrame.this, playerTableValue, gamePanel);
						messageTextField.setEditable(true);
						newButton.setEnabled(false);
						playerButton.setEnabled(false);
						joinButton.setText("离开游戏");
					}
					else if(e.getActionCommand().equals("离开游戏"))
					{
						if(JOptionPane.showConfirmDialog(MainFrame.this,
								"你已加入游戏,是否要强制离开?", "提示",
								JOptionPane.YES_NO_OPTION,
								JOptionPane.WARNING_MESSAGE) == JOptionPane.NO_OPTION)
						{
							return;
						}
						gClient.close();
						messageTextField.setEditable(false);
						newButton.setEnabled(true);
						playerButton.setEnabled(true);
						joinButton.setText("加入游戏");
					}
				}
			});
		}
		return joinButton;
	}

	/**
	 * This method initializes jButton
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getExitButton()
	{
		if(exitButton == null)
		{
			exitButton = new JButton();
			exitButton.setText("退出游戏");
			exitButton.addActionListener(new java.awt.event.ActionListener()
			{
				public void actionPerformed(java.awt.event.ActionEvent e)
				{
					close();
				}
			});
		}
		return exitButton;
	}

	public void close()
	{
		if(gServer != null && !gServer.isColsed() && !gServer.canClose())
		{
			if(JOptionPane.showConfirmDialog(this, "还有其它玩家连接到你的游戏,是否要强制退出?",
					"提示", JOptionPane.YES_NO_OPTION,
					JOptionPane.WARNING_MESSAGE) == JOptionPane.NO_OPTION)
			{
				this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
				return;
			}
			gServer.colse();
		}
		else if((gServer == null || gServer.isColsed()) && gClient != null
				&& !gClient.isClosed())
		{
			if(JOptionPane.showConfirmDialog(this, "你已加入游戏,是否要强制退出?", "提示",
					JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE) == JOptionPane.NO_OPTION)
			{
				this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
				return;
			}
			gClient.close();
		}
		System.exit(0);
	}

	/**
	 * This method initializes jButton
	 * 
	 * @return javax.swing.JButton
	 */
	private JButton getPlayerButton()
	{
		if(playerButton == null)
		{
			playerButton = new JButton();
			playerButton.setText("玩家设置");
			playerButton.addActionListener(new java.awt.event.ActionListener()
			{
				public void actionPerformed(java.awt.event.ActionEvent e)
				{
					if(player == null)
						player = new Player(player);
					new PlayerDialog(MainFrame.this, player);
				}
			});
		}
		return playerButton;
	}

	/**
	 * This method initializes gamePanel	
	 * 	
	 * @return GamePanel	
	 */    
	private GamePanel getGamePanel() {
		if (gamePanel == null) {
			gamePanel = new GamePanel();
			gamePanel.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
		}
		return gamePanel;
	}
 	public static void main(String [] args)
	{
		new MainFrame();
	}

	/**
	 * This is the default constructor
	 */
	public MainFrame()
	{
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize()
	{
		this.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				close();
			}
		});
		this.setSize(1024, 745);
		this.setContentPane(getJContentPane());
		this.setTitle("局域网斗地主游戏");
		this.setVisible(true);
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private javax.swing.JPanel getJContentPane()
	{
		if(jContentPane == null)
		{
			jContentPane = new javax.swing.JPanel();
			jContentPane.setLayout(new java.awt.BorderLayout());
			jContentPane.setBackground(new java.awt.Color(100, 169, 238));
			jContentPane.add(getUserPanel(), java.awt.BorderLayout.EAST);
			jContentPane.add(getGamePanel(), java.awt.BorderLayout.CENTER);
		}
		return jContentPane;
	}
}

⌨️ 快捷键说明

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