JFrame Problem

Status
Nicht offen für weitere Antworten.
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

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);
		
	}*/
}
 

jPat

Bekanntes Mitglied
hi,

du hast eine while(true) schleife im Konstruktor Server(...) (wenn ich das richtig sehe) d.h. diese schleife zieht die die ganze Processorleistung ab und das prog hängt.
evtl mal einen Thread.wait(500) einfügen in die while schleife

Und init() ist auskommentiert, dadurch ist das frame leer.


gruß
patrick
 

L-ectron-X

Gesperrter Benutzer
Dass sich das Serverfenster nicht mehr schließen lässt, kommt von der Anweisung in Zeile 31 der Klasse Server.
Du wirst auch nicht um einen zweiten Thread herumkommen.
Am besten ist es wohl, wenn du die Server-Funktionen in eine eigene vom JFrame unabhängige Klasse implementierst und die Server-Klasse dann mit dem JFrame kommunizieren lässt.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
GianaSisters JFrame mit JInternalFrames, Keylistener-Problem AWT, Swing, JavaFX & SWT 9
A Problem mit JFrame in separater Klasse AWT, Swing, JavaFX & SWT 3
M JFrame Graphics.drawString Problem AWT, Swing, JavaFX & SWT 11
O Problem mit JFrame auf Linux Mint 13 Maya in VirtualBox AWT, Swing, JavaFX & SWT 3
B Schwer zu beschreibendes Problem mit JFrame oder JButton AWT, Swing, JavaFX & SWT 8
S JFrame problem mit Scrolling AWT, Swing, JavaFX & SWT 2
P Problem beim erstellen eines JPanel in einem JFrame AWT, Swing, JavaFX & SWT 7
L JFrame/Content Pane height Problem AWT, Swing, JavaFX & SWT 4
F Swing Problem mit KeyListener||paintComponent() in JFrame AWT, Swing, JavaFX & SWT 12
L Swing Größen-Problem mit JFrame AWT, Swing, JavaFX & SWT 2
Developer_X Swing JFrame problem AWT, Swing, JavaFX & SWT 5
F jFrame Problem. AWT, Swing, JavaFX & SWT 3
T JFrame Componenten Problem AWT, Swing, JavaFX & SWT 17
B Swing Problem mit Jframe AWT, Swing, JavaFX & SWT 9
Iron Monkey JFrame Problem mit setAlwaysOnTop AWT, Swing, JavaFX & SWT 2
M JFrame - Problem mit Bildaufbau AWT, Swing, JavaFX & SWT 17
L JFrame Refresh-Problem AWT, Swing, JavaFX & SWT 4
A Problem mit Jframe und mouseevent AWT, Swing, JavaFX & SWT 10
F JFrame Close Problem AWT, Swing, JavaFX & SWT 1
M JFrame Problem AWT, Swing, JavaFX & SWT 4
C TextArea Problem :( TextArea über komplettem JFrame AWT, Swing, JavaFX & SWT 2
T Editor auf Basis JFrame in ein JPanel wandeln - Problem! AWT, Swing, JavaFX & SWT 5
X JFrame Icon problem AWT, Swing, JavaFX & SWT 3
G Swing Jframe Problem AWT, Swing, JavaFX & SWT 4
Y Problem mit JFrame und Panel (Schliessen eines JFrame) AWT, Swing, JavaFX & SWT 8
V Listener Problem im JFrame AWT, Swing, JavaFX & SWT 4
V JFrame -> JDialog -> JDialog: Problem owner AWT, Swing, JavaFX & SWT 3
G MouseEvent Problem mit JFrame über einen modalen JDialog AWT, Swing, JavaFX & SWT 3
B Kleines JFrame Problem (oder doch größer?) AWT, Swing, JavaFX & SWT 2
A Problem mit JFrame AWT, Swing, JavaFX & SWT 2
H Mehrere Panels auf JFrame AWT, Swing, JavaFX & SWT 8
M Seltsame Exception bei setVisible(true) Methode in einem JFrame AWT, Swing, JavaFX & SWT 2
Paty JFrame anfänger bräuchte hilfestellung AWT, Swing, JavaFX & SWT 7
Apfelbaum2005 Swing JFrame mehrere JPanels mit unterschiedlichen Formen hinzufügen AWT, Swing, JavaFX & SWT 1
N AWT JPanel zu Jframe hinzufügen AWT, Swing, JavaFX & SWT 2
Mausposition relativ zu JFrame bekommen AWT, Swing, JavaFX & SWT 6
sserio JFrame setIconImmage() funktioniert nicht AWT, Swing, JavaFX & SWT 3
N CPU Belastung bei offenem JFrame auf fast 100% AWT, Swing, JavaFX & SWT 15
N Knopf ganz oben (JFrame) AWT, Swing, JavaFX & SWT 9
N JFrame löscht alles, wenn groß gemacht AWT, Swing, JavaFX & SWT 9
N jFrame löscht am Ende des Threads alles AWT, Swing, JavaFX & SWT 2
N JFrame loescht alles, sobald der Thread zuende ist AWT, Swing, JavaFX & SWT 22
E JFrame resizing AWT, Swing, JavaFX & SWT 2
E Swing Mausposition auf einem JFrame erkennen AWT, Swing, JavaFX & SWT 5
Lunar Swing JFrame erstellt; weitere Elemente werden nicht eingefügt/sind nicht zu sehen AWT, Swing, JavaFX & SWT 4
L JFrame Gui in anderer Methode aufrufen AWT, Swing, JavaFX & SWT 0
H Beim JFrame erstellen ein anderes schließen AWT, Swing, JavaFX & SWT 0
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
H Tabelle in JFrame einfügen AWT, Swing, JavaFX & SWT 1
VPChief Ein JFrame ohne setUndecorated(true); nicht verschiebbar machen. AWT, Swing, JavaFX & SWT 6
R Swing Hat mein JFrame meinen Component? AWT, Swing, JavaFX & SWT 2
R Swing Design des oberen Balkens in JFrame AWT, Swing, JavaFX & SWT 2
B KeyListener auf JFrame reagiert nicht AWT, Swing, JavaFX & SWT 8
R Swing Komponente im JFrame überschreinen sich AWT, Swing, JavaFX & SWT 7
R Swing Ein gezeichneten String aus dem JFrame löschen AWT, Swing, JavaFX & SWT 5
J Exception beim JFrame erstellen AWT, Swing, JavaFX & SWT 6
T JFrame aktualisieren AWT, Swing, JavaFX & SWT 2
T Bilder bei einem JFrame einfügen AWT, Swing, JavaFX & SWT 4
R Swing Background Image in JFrame implementieren AWT, Swing, JavaFX & SWT 40
L Verbindung von Code und JFrame AWT, Swing, JavaFX & SWT 4
L JFrame wird zu klein erstellt AWT, Swing, JavaFX & SWT 7
dereki2000 Swing JFrame nah hinzufügen von Komponenten akualisieren. AWT, Swing, JavaFX & SWT 2
T JFrame Bild einfügen AWT, Swing, JavaFX & SWT 9
T JavaFX JFrame verhalten wie JOptionPane (ErrorMessage) AWT, Swing, JavaFX & SWT 1
T LookAndFeel LookAndFeel funktioniert nicht beim JFrame wechsel AWT, Swing, JavaFX & SWT 3
P Swing Mehrere JPanels auf ein JFrame hinzufügen? AWT, Swing, JavaFX & SWT 2
F JFrame zeigt nicht alle Elemente auf anhieb an AWT, Swing, JavaFX & SWT 4
P JPanle, JFrame und Graphics AWT, Swing, JavaFX & SWT 2
T Reihenfolge der Komponenten im einem JFrame AWT, Swing, JavaFX & SWT 8
K Grafik in JFrame einpassen AWT, Swing, JavaFX & SWT 3
D Mit Jmenu neue JFrame öffnen AWT, Swing, JavaFX & SWT 2
J BackgroundJPanel passt sich dem JFrame nicht an AWT, Swing, JavaFX & SWT 7
C Swing JFrame ändert Größe AWT, Swing, JavaFX & SWT 0
J JFrame Panel hinzufügen AWT, Swing, JavaFX & SWT 10
K JFrame bei JUnit Tests AWT, Swing, JavaFX & SWT 2
W Swing Hilfe beim Einbinden von Bildern in einem JFrame AWT, Swing, JavaFX & SWT 8
D JFrame wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 1
R Swing JPanels auf JFrame auf verfügbaren Platz aufblasen AWT, Swing, JavaFX & SWT 4
JR2205 Swing JxMaps Einbindung Netbeans JFrame AWT, Swing, JavaFX & SWT 4
Zar von Domarus JFrame zu BufferedImage konvertieren AWT, Swing, JavaFX & SWT 3
K KeyListener ohne JFrame AWT, Swing, JavaFX & SWT 9
Joker4632 JFrame in eine Runnable auslagern? AWT, Swing, JavaFX & SWT 4
M Limit für JFrame-Vergrößerung AWT, Swing, JavaFX & SWT 8
GreenTeaYT Wie vergebe Ich den Jframe Title den Namen aus einem Element von der Arraylist ? AWT, Swing, JavaFX & SWT 4
MaxG. JFrame Größe ändern AWT, Swing, JavaFX & SWT 16
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
G Swing Wenn ich mein JFrame Fenster vergrößere die Inhalte anpassen AWT, Swing, JavaFX & SWT 1
G JFrame Probleme AWT, Swing, JavaFX & SWT 2
Ghostman1711 JFrame closing AWT, Swing, JavaFX & SWT 3
R Engineklasse mit JFrame AWT, Swing, JavaFX & SWT 4
M Default-WindowListener JFrame entfernen (Stichwort: iconified) AWT, Swing, JavaFX & SWT 4
ms_cikar Jframe zurück zu frame1 AWT, Swing, JavaFX & SWT 14
C Jframe ohne Rahmen AWT, Swing, JavaFX & SWT 3
lumpigerAffe Swing Jframe aktualisieren AWT, Swing, JavaFX & SWT 27
A Swing JFrame neuzeichnen lassen, position neu berechnen lassen? AWT, Swing, JavaFX & SWT 9
R JFrame schließen AWT, Swing, JavaFX & SWT 9
P Swing JFrame minimiert sich bei Doppelklick auf die Titel-Leiste AWT, Swing, JavaFX & SWT 17
krgewb AWT JFrame soll sich wie Dialog verhalten AWT, Swing, JavaFX & SWT 9
I JFrame an Bildschirm anpassen AWT, Swing, JavaFX & SWT 1
I JFrame Bild strecken und auf Bildschirmgröße anpassen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben