Wenn man das Programm startet wird der thread ConnectionThread erstellt. Nun wird das erste mal ein fenster geöffnet. Dieses beiinhaltet einen Button. Wenn man auf diesen button klickt soll dass fenster geschlossen werden und der server gestartet werden.
Nur mein problem ist folgendes:
Wenn ich auf den button klicke und dass fenster geschlossen wird, wird kein server erstellt.... ?
Nur mein problem ist folgendes:
Wenn ich auf den button klicke und dass fenster geschlossen wird, wird kein server erstellt.... ?
Code:
//Diese Klasse startet das eigentliche Spiel
public class StartGame {
private ConnectionThread myConnection;
public StartGame() {
myConnection = new ConnectionThread();
myConnection.start(); //Thread wird gestartet
}
public static void main(String[] args) {
StartGame spielStarten = new StartGame();
}
}
Code:
//Diese Klasse stellt Netzwerkverbindung her.
//Es soll erst ein Fenster geöffnet werden in dem abgefragt wird ob Server oder Client
//Doch für den Anfang soll ein Server genügen.
import java.io.*;
import java.net.*;
public class ConnectionThread extends Thread {
public StartGame linkGame;
public ConnectionFenster linkConnectionFenster;
private ServerSocket myServerSocket = null;
private Socket myClientSocket = null;
private PrintWriter out = null;
private BufferedReader in = null;
public void run() {
while (true) {
//Diese endlosschleife soll später dazu dienen
//irgendwlche kommandos zu empfangen
}
}
//Konstruktor
public ConnectionThread() {
//Fenster zum Server starten wird geöffnet
linkConnectionFenster = new ConnectionFenster();
//Wenn Variable isServer in Klasse ConnectionFenster == true - > Server starten
if (linkConnectionFenster.isServer() == true) {
try {
myServerSocket = new ServerSocket(3550);
System.out.println("warten auf client");
myClientSocket = myServerSocket.accept();
System.out.println("client gefunden");
out = new PrintWriter(myClientSocket.getOutputStream(), true);
in =
new BufferedReader(
new InputStreamReader(myClientSocket.getInputStream()));
}
catch (IOException e) {}
}
else {
System.out.println("P R O B L E M ! ! !");
}
}
} //Ende der Klasse
Code:
//Fenster in dem Später Server ausgewählt wird oder Client.
//Als Client muss man dann die IP und den Port eingeben.
//Doch für den Anfang soll man nur auf den Button Server klicken und der Server wird gestarte.
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class ConnectionFenster extends JFrame implements ActionListener {
private JPanel jContentPane = null;
boolean isServer;
private JPanel jPanel = null;
private JButton buttonServer = null;
//Konstruktor
public ConnectionFenster() {
setSize(300, 200);
setContentPane(getJContentPane());
setVisible(true);
}
//ContentPane
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getJPanel(), BorderLayout.CENTER);
}
return jContentPane;
}
//Panel
private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.setLayout(null);
jPanel.add(getButtonServer(), null);
}
return jPanel;
}
//Button um Server zu starten und Fenster wieder schließen
private JButton getButtonServer() {
if (buttonServer == null) {
buttonServer = new JButton();
buttonServer.setBounds(22, 19, 112, 24);
buttonServer.setText("Server");
buttonServer.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("actionPerformed()");
isServer = true;
setVisible(false);
}
});
}
return buttonServer;
}
public boolean isServer() {
return isServer;
}
public void actionPerformed(ActionEvent arg0) {
}
}