import java.awt.Button;
import java.awt.Checkbox;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;
import java.util.Scanner;
import javax.swing.JPasswordField;
public class GetServer extends Frame implements WindowListener, ActionListener {
private static final long serialVersionUID = 1L;
public static String serverName = "localhost";
public static int serverPort = 11772;
public static boolean useProxy = false;
public static String proxyServer;
public static int proxyPort = 8080;
public static String proxyUser;
public static String proxyPass;
private TextField tServer;
private TextField tPort;
private Checkbox tUseProxy;
private TextField tProxy;
private TextField tProxyPort;
private TextField tUser;
private JPasswordField tPass;
public boolean setServer = false;
public GetServer() {
super();
setSize(300, 210);
setBackground(Color.lightGray);
this.setLayout(new GridLayout(8, 2));
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((d.width - getSize().width) / 2,
(d.height - getSize().height) / 2);
addWindowListener(this);
add(new Label("Server"));
tServer = new TextField(serverName);
add(tServer);
add(new Label("Port"));
tPort = new TextField(String.valueOf(serverPort));
add(tPort);
add(new Label("Benutze Proxy"));
tUseProxy = new Checkbox();
tUseProxy.setState(useProxy);
add(tUseProxy);
add(new Label("Proxy-Server"));
tProxy = new TextField(proxyServer);
add(tProxy);
add(new Label("Proxy-Port"));
tProxyPort = new TextField(String.valueOf(proxyPort));
add(tProxyPort);
add(new Label("Proxy-User"));
tUser = new TextField(proxyUser);
add(tUser);
add(new Label("Proxy-Passwort"));
tPass = new JPasswordField(proxyPass);
add(tPass);
Button b1 = new Button("Ok");
b1.setActionCommand("OK");
b1.addActionListener(this);
add(b1);
Button b2 = new Button("Abbruch");
b2.setActionCommand("CANCEL");
b2.addActionListener(this);
add(b2);
setVisible(true);
}
public GetServer(boolean set_server) {
super();
setServer = true;
setSize(300, 210);
setBackground(Color.lightGray);
this.setLayout(new GridLayout(8, 2));
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((d.width - getSize().width) / 2,
(d.height - getSize().height) / 2);
addWindowListener(this);
add(new Label("Server"));
try {
serverName = InetAddress.getLocalHost().getHostName();
if(serverName == null || serverName.length() < 1)
{
serverName = InetAddress.getLocalHost().getHostAddress();
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
tServer = new TextField(serverName);
tServer.setEditable(false);
add(tServer);
add(new Label("Port"));
tPort = new TextField(String.valueOf(serverPort));
add(tPort);
Button b1 = new Button("Ok");
b1.setActionCommand("OK");
b1.addActionListener(this);
add(b1);
Button b2 = new Button("Abbruch");
b2.setActionCommand("CANCEL");
b2.addActionListener(this);
add(b2);
setVisible(true);
}
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosing(WindowEvent e) {
this.dispose();
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("OK")) {
serverName = tServer.getText();
String sport = tPort.getText();
if (sport != null && sport != "")
serverPort = Integer.parseInt(sport);
else
serverPort = 80;
if (tUseProxy != null) {
useProxy = tUseProxy.getState();
proxyServer = tProxy.getText();
String pport = tProxyPort.getText();
if (pport != null && pport != "")
proxyPort = Integer.parseInt(pport);
else
proxyPort = 80;
proxyUser = tUser.getText();
proxyPass = String.valueOf(tPass.getPassword());
System.setProperty("proxySet", String.valueOf(useProxy));
System.setProperty("proxyHost", proxyServer);
System.setProperty("proxyPort", String.valueOf(proxyPort));
System.setProperty("http.proxyUser", proxyUser);
System.setProperty("http.proxyPassword", proxyPass);
}
if (setServer == true) {
try {
new GameServer(serverPort);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
checkNetwork();
}
this.dispose();
}
public void checkNetwork() {
InputStream is = null;
String command = "";
try {
URL server = new URL("http://" + GetServer.serverName + ":"
+ String.valueOf(GetServer.serverPort));
System.out.println("Anfrage: http://" + GetServer.serverName + ":"
+ String.valueOf(GetServer.serverPort));
is = server.openStream();
command = new Scanner(is).useDelimiter(" ").next();
System.out.println("Antwort Netzwerk: " + command);
} catch (MalformedURLException e) { // new URL() ging daneben
new PopUpWindow("Serverfehler", "Server nicht erreichbar.");
} catch (IOException e) { // openConnection() schlug fehl
new PopUpWindow("Serverfehler", "Server nicht erreichbar.");
} finally {
if (is != null)
try {
is.close();
} catch (IOException e) {
}
}
}
}