📄 gameroomcreationwindow.java
字号:
/*
* Created on Mar 13, 2006
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.GTADS.client;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import org.GTADS.helper.WebClient;
import org.GTADS.messenger.MessageAdapter;
import org.GTADS.protocol.MetaData;
import org.GTADS.usermanager.Chatroom;
import org.GTADS.usermanager.GameRoom;
import org.GTADS.usermanager.TranslateManager;
import org.GTADS.client.swing.*;
/**
* @author sday
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class GameroomCreationWindow extends GTADSFrame implements ActionListener, KeyListener{
public static GameroomCreationWindow instance;
private TranslateManager locale = TranslateManager.getInstance();
private GTADSTextField gameroomNameField;
private GTADSComboBox gameroomNumPlayers;
private GTADSComboBox gameroomGameType;
private GTADSCheckBox bindIP;
private GTADSTextField bindIPField;
private GTADSButton getMyIPButton;
private GTADSButton createButton;
private GTADSButton cancelButton;
public static GameroomCreationWindow getInstance(){
if (instance == null){
instance = new GameroomCreationWindow();
}
return instance;
}
public static void clearInstance() {
if (instance != null){
instance.hide();
instance.dispose();
instance = null;
}
}
public GameroomCreationWindow(){
this.setTitle("Create Gameroom");
createComponents();
this.setContentPane(getContentPanel());
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.addWindowListener(new WindowAdapter() {
public void windowClosed(WindowEvent e){
GameroomCreationWindow.clearInstance();
}
});
pack();
}
private void createComponents(){
bindIP = new GTADSCheckBox("Bind IP");
bindIP.addActionListener(this);
bindIPField = new GTADSTextField();
bindIPField.setColumns(15);
bindIPField.enable(false);
bindIPField.addKeyListener(this);
gameroomNameField = new GTADSTextField();
gameroomNameField.setColumns(20);
gameroomNameField.addKeyListener(this);
gameroomGameType = new GTADSComboBox();
gameroomGameType.setPrototypeDisplayValue("#############################");
gameroomGameType.addItem(GameRoom.GTA_1); // Hardcode for now until we have more games
gameroomGameType.addItem(GameRoom.GTA_LONDON);
gameroomGameType.addItem(GameRoom.AGE_OF_EMPIRES_1);
gameroomGameType.addItem(GameRoom.AGE_OF_EMPIRES_RISE_TO_ROME);
gameroomGameType.addItem(GameRoom.AGE_OF_EMPIRES_2);
gameroomGameType.addItem(GameRoom.AGE_OF_EMPIRES_2_CONQ);
gameroomGameType.setEditable(false);
gameroomNumPlayers = new GTADSComboBox();
gameroomNumPlayers.setPrototypeDisplayValue("##");
gameroomNumPlayers.addItem("2");
gameroomNumPlayers.addItem("3");
gameroomNumPlayers.addItem("4");
gameroomNumPlayers.setEditable(false);
createButton = new GTADSButton("Create Game");
cancelButton = new GTADSButton("Cancel");
getMyIPButton = new GTADSButton("Get IP");
createButton.addActionListener(this);
cancelButton.addActionListener(this);
getMyIPButton.addActionListener(this);
getMyIPButton.setEnabled(bindIP.isSelected());
}
public void keyPressed(KeyEvent e) {
//if (e.getSource().equals(gameroomNameField)){
if (e.getKeyChar() == KeyEvent.VK_ENTER){
createGameroomAction();
}
//}
}
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
private GTADSPanel getContentPanel(){
GTADSPanel mainPanel = new GTADSPanel();
GTADSPanel panel1 = new GTADSPanel();
GTADSPanel panel2 = new GTADSPanel();
GTADSPanel panel3 = new GTADSPanel();
GTADSPanel panel4 = new GTADSPanel();
GTADSPanel panel5 = new GTADSPanel();
mainPanel.setLayout(new BoxLayout(mainPanel,BoxLayout.Y_AXIS));
panel1.setLayout(new FlowLayout(FlowLayout.LEFT));
panel2.setLayout(new FlowLayout(FlowLayout.LEFT));
panel3.setLayout(new FlowLayout(FlowLayout.LEFT));
panel4.setLayout(new FlowLayout(FlowLayout.LEFT));
panel5.setLayout(new FlowLayout(FlowLayout.LEFT));
panel1.add(new GTADSLabel(locale.printLocale("Game name") + ": "));
panel1.add(gameroomNameField);
panel2.add(new GTADSLabel("game name can be 20 characters max"));
panel3.add(new GTADSLabel(locale.printLocale("Game Type") + ": "));
panel3.add(gameroomGameType);
panel3.add(Box.createHorizontalStrut(10));
panel3.add(new GTADSLabel(locale.printLocale("Max Players") + " "));
panel3.add(gameroomNumPlayers);
panel4.add(bindIP);
panel4.add(Box.createHorizontalStrut(10));
panel4.add(bindIPField);
panel4.add(Box.createHorizontalStrut(5));
panel4.add(getMyIPButton);
panel5.add(createButton);
panel5.add(Box.createHorizontalStrut(10));
panel5.add(cancelButton);
mainPanel.add(panel1);
mainPanel.add(panel2);
mainPanel.add(panel3);
mainPanel.add(panel4);
mainPanel.add(panel5);
return mainPanel;
}
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(createButton)){
createGameroomAction();
}
else if (e.getSource().equals(cancelButton)){
GameroomCreationWindow.clearInstance();
}
else if (e.getSource().equals(bindIP)){
bindIPField.enable(bindIP.isSelected());
getMyIPButton.setEnabled(bindIP.isSelected());
if (!bindIPField.isEnabled()){
bindIPField.setText("");
}
}
else if (e.getSource().equals(getMyIPButton)){
bindIPField.setText(WebClient.getWhatIsMyIP(bindIPField));
}
}
public void createGameroomAction(){
String gameroomName = "#" + gameroomNameField.getText();
if (!gameroomName.equals("") && gameroomName.length() <= 20 && Chatroom.isCorrectChatroomName(gameroomName))
createGameroom();
else {
DialogManager.ErrorDialog(locale.printLocale("Invalid room name"));
}
}
private void createGameroom(){
try {
MetaData createGameroomHeader = new MetaData(ClientLoginScreen.getInstance().getUsername(),
MetaData.GENERIC,MetaData.CREATE_GAMEROOM);
MessageAdapter.sendData(null,DSChatClient.ClientSocket,createGameroomHeader,
gameroomNameField.getText() + "," + gameroomGameType.getSelectedItem()
+ "," + this.gameroomNumPlayers.getSelectedItem() +
(this.bindIPField.isEnabled() ? "," + this.bindIPField.getText() : ""));
} catch (IOException ioe){
return;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -