O
oli001
Gast
Hi,
ich habe ein kleines Problem. Ich habe zwei Klassen. In der ersten Klasse kann man über RadioButtons usw Einstellungen vornehmen und durch Drücken eines Buttons einen Server starten(ist ein TZP - Server). Der ist in der zweiten Klasse implementiert. Dort soll dann ein neuer Frame geöffnet werden, der mit die Arbeit des Servers darstellt. Nur leider zeigt er mir nur nen Frame an. Ohne Funktion. Läßt sich nich mal mehr schließen. Hier der Code beider Klassen.
Komme echt nicht weiter, ich find keinen Fehler. Bitte um Eure Hilfe.
Danke
Klasse StartServer
Und hier die Klasse Server:
ich habe ein kleines Problem. Ich habe zwei Klassen. In der ersten Klasse kann man über RadioButtons usw Einstellungen vornehmen und durch Drücken eines Buttons einen Server starten(ist ein TZP - Server). Der ist in der zweiten Klasse implementiert. Dort soll dann ein neuer Frame geöffnet werden, der mit die Arbeit des Servers darstellt. Nur leider zeigt er mir nur nen Frame an. Ohne Funktion. Läßt sich nich mal mehr schließen. Hier der Code beider Klassen.
Komme echt nicht weiter, ich find keinen Fehler. Bitte um Eure Hilfe.
Danke
Klasse StartServer
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ServerStart extends JFrame{
JLabel titel = new JLabel ("Startmenue", JLabel.CENTER);
JLabel fusszeile = new JLabel ("(c) 2006", JLabel.CENTER);
Font titelFont = new Font ("SansSerif", Font.BOLD, 20);
JPanel pCenter = new JPanel (); //zentrales Panel
JPanel p1 = new JPanel(); //Checkboxen Serverauswahl
CheckboxGroup cb = new CheckboxGroup(); //Serverauswahl
JPanel p3 = new JPanel(); //Checkboxen Respone/Request
JRadioButton res = new JRadioButton("Response",true);
JRadioButton req = new JRadioButton("Request",true);
JPanel p4 = new JPanel(); //Checkboxen Serverfunktion
CheckboxGroup cb1 = new CheckboxGroup(); //Serverfunktion
JPanel p5 = new JPanel(); // Textfelder Portnummer und Timeout;
JTextField port = new JTextField(5);
JTextField time = new JTextField(10);
JPanel p6 = new JPanel();
JLabel msg = new JLabel();
public ServerStart () {
super("Server starten");
this.setSize(500, 300);
this.setLocation(40,40);
this.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
}
);
this.setResizable(false);
this.setVisible(true);
getContentPane ().setBackground (Color.blue);
getContentPane ().setForeground (Color.yellow);
init();
}
public void init () {
titel.setForeground (Color.white);
titel.setFont (titelFont);
JPanel pNorth = new JPanel ();
pNorth.setBackground (Color.blue);
pNorth.add (titel);
getContentPane ().add (pNorth, BorderLayout.NORTH);
getContentPane ().add (centerPanel(), BorderLayout.CENTER);
JPanel pSouth = new JPanel ();
pSouth.setBackground (new Color (64, 128, 64));
fusszeile.setForeground (Color.white);
pSouth.add (fusszeile);
getContentPane ().add (pSouth, BorderLayout.SOUTH);
pCenter.setLayout(null);
//Checkboxen Serverauswahl
p1.setLayout(new GridLayout(4,1));
p1.add(new Checkbox("TZP-Server",cb,true));
p1.add(new Checkbox("TZP-Server parallel",cb,false));
p1.add(new Checkbox("TZP-Server persistent",cb,false));
p1.add(new Checkbox("TCP/IP Echo-Server",cb,false));
p1.setBackground(Color.LIGHT_GRAY);
p1.setBounds(15, 15, 200, 70);
//Button Server Starten
JPanel p2 = new JPanel();
JButton start = new JButton("Server starten");
p2.add(start);
p2.setBackground(Color.LIGHT_GRAY);
p2.setBounds(350, 220, 150, 40);
//Checkboxen request/response
p3.setLayout(new GridLayout(2,1));
p3.add(res);
p3.add(req);
res.setBackground(Color.LIGHT_GRAY);
req.setBackground(Color.LIGHT_GRAY);
p3.setBounds(250, 15, 100, 40);
//Serverfunktion
p4.setLayout(new GridLayout(4,1));
p4.add(new Checkbox("Unveränderte Rückgabe",cb1,true));
p4.add(new Checkbox("Großbuchstaben",cb1,false));
p4.add(new Checkbox("Kleinbuchstaben",cb1,false));
p4.setBackground(Color.LIGHT_GRAY);
p4.setBounds(15, 100, 200, 70);
p5.setLayout(new GridLayout(2,2));
p5.add(new JLabel("Portnummer"));
p5.add(port);
port.setText("5555");
p5.add(new JLabel("Timeout in ms"));
p5.add(time);
time.setText("10000");
p5.setBackground(Color.LIGHT_GRAY);
p5.setBounds(15, 170, 200, 50);
p6.setBackground(Color.LIGHT_GRAY);
p6.setBounds(15, 200, 200, 50);
pCenter.add(p1);
pCenter.add(p2);
pCenter.add(p3);
pCenter.add(p4);
pCenter.add(p5);
pCenter.add(p6);
start.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
String art = cb.getSelectedCheckbox().getLabel().toString();
String funk = cb1.getSelectedCheckbox().getLabel().toString();
String pt = port.getText();
String to = time.getText();
boolean[] rr = {true,true};
if (res.isSelected())
{
rr[0]=true;
}
else
{
rr[0]=false;
}
if (req.isSelected())
{
rr[1]=true;
}
else
{
rr[1]=false;
}
try
{
start(art,rr,funk,pt,to);
}
catch(Exception ex)
{
}
}
} );
}
public void start(String art, boolean[] rr, String funk, String port, String time)throws Exception {
//this.setVisible(false);
new Server(art,rr,funk,port,time);
//se.setSize(500,350);
//se.setLocation(40, 40);
//se.setVisible(true);
this.setVisible(true);
}
public JPanel centerPanel () {
pCenter.setBackground (Color.lightGray);
return pCenter;
}
public static void main(String[] args)throws Exception {
ServerStart ss = new ServerStart();
ss.setSize(500,350);
ss.setLocation(40, 40);
ss.setVisible(true);
}
}
Und hier die Klasse Server:
Code:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
public class Server extends JFrame{
public String adress;
public int port;
public static String funktion="";
public Server (String srv, boolean[] rr, String fkt, String port, String time)throws Exception
{
super("Server");
this.setSize(500, 300);
this.setLocation(40,40);
this.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
}
);
//init();
setVisible(true);
while(true);
/*
if (fkt == "Unveränderte Rückgabe")
{
funktion="svca";
}
else if (fkt == "Großbuchstaben")
{
funktion="svcu";
}
else if (fkt == "Kleinbuchstaben")
{
funktion="svcl";
}
if (srv == "TZP-Server")
{
startTZP_Server(rr,port,time);
}
else if(srv == "TZP-Server parallel")
{
//server="TZPPAR";
}
else if(srv == "TZP-Server persistent")
{
//server="TZPPER";
}
else if (srv== "TCP/IP Echo-Server")
{
//server="ECHO";
}
*/
}
public void startTZP_Server(boolean[] rr, String pt, String tm) throws Exception
{
System.out.println("Server gestartet");
String inMessage;
String outMessage;
ServerSocket server = new ServerSocket(Integer.valueOf(pt));
while(true){
Socket con = server.accept();
con.setSoTimeout(Integer.valueOf(tm));
BufferedReader inFromClient = new BufferedReader(new InputStreamReader(con.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(con.getOutputStream());
inMessage = inFromClient.readLine();
outMessage = getMessage(inMessage,funktion);
outToClient.writeBytes(outMessage+"\n");
}
}
public String getMessage(String inMessage,String fkt){
if (fkt=="svcl"){
return inMessage.toLowerCase();
}
if (fkt=="svcu"){
return inMessage.toUpperCase();
}
return inMessage;
}
/* public void init () {
JPanel pNorth = new JPanel ();
JPanel pSouth = new JPanel ();
JPanel pCenter = new JPanel (); //zentrales Panel
JPanel p1 = new JPanel(); //Checkboxen Serverauswahl
CheckboxGroup cb = new CheckboxGroup(); //Serverauswahl
getContentPane ().add (pNorth, BorderLayout.NORTH);
getContentPane ().add (pCenter, BorderLayout.CENTER);
getContentPane ().add (pSouth, BorderLayout.SOUTH);
JLabel titel = new JLabel ("Startmenue", JLabel.CENTER);
JLabel fusszeile = new JLabel ("(c) 2006", JLabel.CENTER);
Font titelFont = new Font ("SansSerif", Font.BOLD, 20);
getContentPane ().setBackground (Color.blue);
getContentPane ().setForeground (Color.yellow);
titel.setForeground (Color.white);
titel.setFont (titelFont);
pNorth.setBackground (Color.blue);
pNorth.add (titel);
pSouth.setBackground (new Color (64, 128, 64));
fusszeile.setForeground (Color.white);
pSouth.add (fusszeile);
pCenter.setBackground (Color.lightGray);
pCenter.setLayout(null);
//Hier sollen dann Serverfunktionen angezeigt werden.
p1.setLayout(new GridLayout(4,1));
p1.add(new Checkbox("TZP-Server",cb,true));
p1.add(new Checkbox("TZP-Server parallel",cb,false));
p1.add(new Checkbox("TZP-Server persistent",cb,false));
p1.add(new Checkbox("TCP/IP Echo-Server",cb,false));
p1.setBounds(15, 15, 200, 200);
pCenter.add(p1);
this.setVisible(true);
}*/
}