?? hostconnection.java
字號:
/*
Netwar
Copyright (C) 2002 Daniel Grund, Kyle Kakligian, Jason Komutrattananon, & Brian Hibler.
This file is part of Netwar.
Netwar is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
Netwar is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Netwar; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package netwar.gui;
import netwar.network.NetworkServer;
import netwar.network.NetworkClient;
import netwar.Netwar;
import netwar.settings.GameSettings;
import netwar.settings.PlayerSettings;
import netwar.game.UnitSet;
/** Composite GUI class opened when the program is first start.
* Display when a hosting player is waiting to start the game.
* Allows the player to change his/her name.
* Keeps the player updated on the list of players that have joined the game.
* Has a Start Game button, which allows the host player to start the game.
* @author Group N2 - Project Netwar
* @author Brian Hibler
* @author modified by Daniel Grund
* @author Kyle Kakligian
*/
public class HostConnection extends javax.swing.JPanel implements Chatable {
/** Creates new form HostConnection */
public HostConnection() {
try{
new NetworkServer();
Netwar.nc = new NetworkClient("127.0.0.1");
GameSettings.currentSettings.reviseSettings(1, Netwar.netwar.pset, null);
} catch(Exception e) {
System.out.println(e);
}
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {//GEN-BEGIN:initComponents
java.awt.GridBagConstraints gridBagConstraints;
LabelTitle = new javax.swing.JLabel();
LabelSpacer1 = new javax.swing.JLabel();
LabelIP = new javax.swing.JLabel();
LabelIPValue = new javax.swing.JLabel();
LabelName = new javax.swing.JLabel();
FieldName = new javax.swing.JTextField();
LabelSpacer2 = new javax.swing.JLabel();
LabelMap = new javax.swing.JLabel();
ComboMap = new javax.swing.JComboBox();
LabelUnitSet = new javax.swing.JLabel();
ComboUnitSet = new javax.swing.JComboBox();
chat = new netwar.gui.ChatViewer();
LabelUsers = new javax.swing.JLabel();
AreaNames = new javax.swing.JTextArea();
AreaUnitSets = new javax.swing.JTextArea();
ButtonStart = new javax.swing.JButton();
setLayout(new java.awt.GridBagLayout());
setMinimumSize(new java.awt.Dimension(1329, 200));
setPreferredSize(new java.awt.Dimension(100977, 400));
LabelTitle.setText("Server Connection Setup");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
add(LabelTitle, gridBagConstraints);
LabelSpacer1.setText(" ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
add(LabelSpacer1, gridBagConstraints);
LabelIP.setText("Your IP Address:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
add(LabelIP, gridBagConstraints);
LabelIPValue.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
LabelIPValue.setText("[runtime]");
try { LabelIPValue.setText(java.net.InetAddress.getLocalHost().toString()); } catch(Exception e) { LabelIPValue.setText("Undefined"); };
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
add(LabelIPValue, gridBagConstraints);
LabelName.setText("Your Screen Name:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
add(LabelName, gridBagConstraints);
FieldName.setColumns(20);
FieldName.setText("<Enter Name>");
FieldName.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
updateInfo(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
add(FieldName, gridBagConstraints);
LabelSpacer2.setText(" ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 4;
add(LabelSpacer2, gridBagConstraints);
LabelMap.setText("Pick A Map:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 5;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
add(LabelMap, gridBagConstraints);
populateMaps();
ComboMap.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
updateInfo(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 5;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
add(ComboMap, gridBagConstraints);
LabelUnitSet.setText("Your Unit Set:");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 6;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
add(LabelUnitSet, gridBagConstraints);
populateUnitSets();
ComboUnitSet.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
updateInfo(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 6;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
add(ComboUnitSet, gridBagConstraints);
chat.setMinimumSize(new java.awt.Dimension(300, 160));
chat.setPreferredSize(new java.awt.Dimension(800, 500));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 8;
gridBagConstraints.gridwidth = 4;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
add(chat, gridBagConstraints);
LabelUsers.setForeground(new java.awt.Color(0, 0, 160));
LabelUsers.setText("Users Connected:");
LabelUsers.setVerticalAlignment(javax.swing.SwingConstants.TOP);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 9;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
add(LabelUsers, gridBagConstraints);
AreaNames.setColumns(20);
AreaNames.setEditable(false);
AreaNames.setFont(new java.awt.Font("Dialog", 0, 10));
AreaNames.setForeground(new java.awt.Color(0, 0, 160));
AreaNames.setRows(12);
AreaNames.setText("[runtime]");
AreaNames.setMaximumSize(new java.awt.Dimension(141, 192));
AreaNames.setMinimumSize(new java.awt.Dimension(141, 192));
AreaNames.setOpaque(false);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 9;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
add(AreaNames, gridBagConstraints);
AreaUnitSets.setColumns(20);
AreaUnitSets.setEditable(false);
AreaUnitSets.setFont(new java.awt.Font("Dialog", 0, 10));
AreaUnitSets.setForeground(new java.awt.Color(0, 0, 160));
AreaUnitSets.setRows(12);
AreaUnitSets.setText("[runtime]");
AreaUnitSets.setMaximumSize(new java.awt.Dimension(141, 192));
AreaUnitSets.setMinimumSize(new java.awt.Dimension(141, 192));
AreaUnitSets.setOpaque(false);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 9;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
add(AreaUnitSets, gridBagConstraints);
ButtonStart.setText("Start Game");
ButtonStart.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
startGame(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 10;
add(ButtonStart, gridBagConstraints);
}//GEN-END:initComponents
private void startGame(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_startGame
// broadcast server settings
updateInfo(new java.awt.event.ActionEvent(this,0,"Start-game sync"));
//Start the game.
NetworkServer.server.startGame();
}//GEN-LAST:event_startGame
private void updateInfo(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_updateInfo
Netwar.netwar.pset.teamName = FieldName.getText();
GameSettings.currentSettings.global.map = ComboMap.getSelectedItem().toString();
try{Netwar.netwar.pset.unitSet = (UnitSet)(Class.forName("netwar.game.UnitSets." + ComboUnitSet.getSelectedItem()).newInstance());
} catch (Exception e) {};
if(Netwar.netwar.pset.unitSet == null)
System.out.println("unit set load error.");
Netwar.nc.clientBroadcastSettings(1, Netwar.netwar.pset, null);
repaint();
}//GEN-LAST:event_updateInfo
public void displayChat(String chatMessage) {
chat.displayChat(chatMessage);
}
private void populateUnitSets() {
String list[] = netwar.utils.Dir.directoryList("game/UnitSets");
String curr = null;
int _inlist = 0;
if(Netwar.netwar.pset.unitSet != null) {
curr = Netwar.netwar.pset.unitSet.getClass().getName();
curr = curr.substring(curr.lastIndexOf('.')+1);
}
if(list != null)
for(int t = 0; t < list.length; t++)
if(list[t].endsWith(".class")) {
String add = list[t].substring(0,list[t].indexOf(".class"));
ComboUnitSet.addItem(add);
if(add.equals(curr))
ComboUnitSet.setSelectedIndex(_inlist);
_inlist++;
}
updateInfo(new java.awt.event.ActionEvent(this,0,"init"));
}
private void populateMaps() {
ComboMap.addItem("no maps implemented1");
ComboMap.addItem("no maps implemented2");
}
/** Called by the NetworkClient if the GameSettings was changed.
* Corrects the data on the display, then calls super.repaint().
*/
public void repaint() {
if(GameSettings.currentSettings.players.length > 0) {
FieldName.setText(GameSettings.currentSettings.players[0].teamName);
String names = "", teams = "";
for(int i = 0; i < GameSettings.currentSettings.players.length; i++) {
names += GameSettings.currentSettings.players[i].teamName + "\n";
String us = "";
if(GameSettings.currentSettings.players[i].unitSet != null) {
us = GameSettings.currentSettings.players[i].unitSet.getClass().getName();
us = us.substring(us.lastIndexOf('.')+1);
}
teams += us + "\n";
}
AreaNames.setText(names);
AreaUnitSets.setText(teams);
ButtonStart.setEnabled(GameSettings.currentSettings.players.length > 1);
}
super.repaint();
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel LabelName;
private javax.swing.JLabel LabelIP;
private javax.swing.JLabel LabelIPValue;
private javax.swing.JButton ButtonStart;
private javax.swing.JComboBox ComboUnitSet;
private javax.swing.JLabel LabelMap;
private javax.swing.JLabel LabelTitle;
private javax.swing.JTextArea AreaNames;
private netwar.gui.ChatViewer chat;
private javax.swing.JLabel LabelUsers;
private javax.swing.JLabel LabelSpacer2;
private javax.swing.JLabel LabelSpacer1;
private javax.swing.JComboBox ComboMap;
private javax.swing.JLabel LabelUnitSet;
private javax.swing.JTextField FieldName;
private javax.swing.JTextArea AreaUnitSets;
// End of variables declaration//GEN-END:variables
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -