fenstergrösse verstellen

Status
Nicht offen für weitere Antworten.
B

blackstarmaster

Gast
hallo leute..

ich habe eine java applikation (netzwerkchat) geschrieben.. dort habe ich das window so definiert dass es nicht verstellbar ist
Code:
window.setResizable(false);

in meinem client hat es auch eingabefelder und textareas
JTextField und JTextArea

mein problem. wann ich die fentergrösse verstellbar machen will
Code:
window.setResizable(true);
dann behalten die textareas/felder ihre grösse bei (passen sich also nicht der windowgrösse an....

ich bin nun auf eure hilfe angewiesen.. bitte helft mir das problem zu lösen... wenn möglich mit konkereten beispielen.. denn ich bin noch kein "programier-freak" und deshalb bin ich auch schnell überfordert :bahnhof:

merci schon mal
 

Maeher

Bekanntes Mitglied
Ich glaube hier wären ein paar Ausschnitte aus dem Code, mit dem du das Fenster erzeugst für die Diagnose hilfreich, vor allem der verwendete LayoutManager. Hast du evtl. irgend einen GUI-Designer verwendet?
 
B

Blackstarmaster

Gast
ich schreib jetz einfach mal den code hinein, dann könnt ihr lelbst schauen......

Code:
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;




class ChatPanel extends JPanel implements ActionListener, WindowListener {
	    JButton button;      //send Button
	    JTextField eingabe;  //Eingabefeld
	    JTextArea Textarea;      //Textarea Ausgabefeld
	    JTextArea Benutzerarea;
	    PrintWriter output = null;
	    JScrollPane scroll;  //Scrollbar
	    JScrollPane BenutzerScroll;
		JButton byeButton;
	    ArrayList  nicknames = new ArrayList(10);

		public void windowOpened(WindowEvent e) {}       //dann das programm schliesst, wenn man das fenster zumacht

    	public void windowClosing(WindowEvent e) {
		output.println("bye");

		try {
			Thread.currentThread().sleep(0);
		}
		catch (InterruptedException ex) {}
	    }

	    public void windowClosed(WindowEvent e) {System.exit(0);}

	    public void windowIconified(WindowEvent e) {}

	    public void windowDeiconified(WindowEvent e) {}

	    public void windowActivated(WindowEvent e) {}

	    public void windowDeactivated(WindowEvent e) {}






public  ChatPanel() {
		Textarea = new JTextArea("   Willkommen im Chat\n\n", 30, 50);  //texrarea erzeugung
		Benutzerarea = new JTextArea("   Momentan im Chat sind:\n\n",30,15); //Benuterfenster
		eingabe = new JTextField("", 59);                        //eingabefeld erzeugung mit länge
		button = new JButton("Send");                            //button erzeigung
		scroll = new JScrollPane(Textarea);                      //scrollbarerzeugung
		BenutzerScroll= new JScrollPane(Benutzerarea);
		byeButton = new JButton("Abmelden");

		Textarea.setBackground(new Color(207,228,245));
		eingabe.setBackground(new Color(207,228,245));
		Textarea.setForeground(new Color(125,30,60));
		eingabe.setForeground(new Color(125,30,60));
        Benutzerarea.setBackground(new Color(207,228,245));
        Benutzerarea.setForeground(new Color(125,30,60));
		add(scroll);
		//scroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);  //versteckt die untere scrollbar
		Benutzerarea.setEditable(false);                        //
		add(BenutzerScroll);                                    //benutzerarea(mit scrollbar)hinzufügen
		BenutzerScroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); //versteckt die untere scrollbar
		add(eingabe);                                           //eingabefeld hinzufügen
		add(button);
		add(byeButton);                                         //button hinzufügen
		Textarea.setEditable(false);                            //textarea text ist nicht bearbeitbar
		button.addActionListener(this);                         //schaut ob button betätigt wurde
		eingabe.addActionListener(this);                        //schaut ob entertaste betätigt wurde
		byeButton.addActionListener(this);
	    }





void setOutput(Socket client) {
		try {
			output = new PrintWriter(client.getOutputStream(), true);
		}
		catch (IOException e) {}
	    }





void appendMessage(String s,String benutzer) {
		Textarea.append("   "+s + "\n");
		scroll.getVerticalScrollBar().setValue(scroll.getVerticalScrollBar().getMaximum());//schaut dass die scrollbar unten bleibt
	    }





public void actionPerformed(ActionEvent e) {
		if (e.getSource() == button||e.getSource() == eingabe) {   //get source schaut ob der action listener aktiviert wurde

			output.println(eingabe.getText());                    //schreibt den eigenen text in text area
			eingabe.setText("");                                  //leert das eingabefeld

		}
		else if(e.getSource()== byeButton){
		output.println("bye");
				}
		}
	   }







class Receiver extends Thread {                                   //empfänger
	BufferedReader reader = null;                                 //fasst den text in teilen zusammen
	ChatPanel panel = null;


	public Receiver(BufferedReader r, ChatPanel c) {
		reader = r;
		panel = c;
	}

	public void run() {
			try {
				String s = "";
				while (s != null) {
					s = reader.readLine();
				    if (s!= null && s.endsWith("thfjhgdh")) {
					      s=s.substring(0,(s.indexOf("thfjhgdh")));
					      panel.nicknames.add(s);
					      panel.Benutzerarea.append(s + "\n");
					}
					else if(s!= null){panel.appendMessage(s,null);
					   if (s.endsWith(" hat den Chat betreten!")){
						   String newNickname = s.substring(0,(s.indexOf(" hat den Chat betreten!")));
	                       panel.nicknames.add(newNickname);
	                       panel.Benutzerarea.setText("   Momentan im Chat sind:\n\n");
						   int i = 0;
						   while (i < panel.nicknames.size()) {
						   panel.Benutzerarea.append((String) "   "+panel.nicknames.get(i) + "\n");
						   i++;
					       }
					       }
					   if (s.endsWith(" hat den Chat verlassen!")){
						   String newNickname = s.substring(0,(s.indexOf(" hat den Chat verlassen!")));
						   panel.nicknames.remove(newNickname);
						   panel.Benutzerarea.setText("   Momentan im Chat sind:\n\n");
						   int i = 0;
						   while (i < panel.nicknames.size()) {
						   panel.Benutzerarea.append((String) panel.nicknames.get(i) + "\n");
						   i++;
						   }
					       }
				           }
					else if(s==null){
						   panel.appendMessage("",null);
						   this.sleep(2000);
						   System.exit(0);
						   }
					else{panel.appendMessage("",null);}
				}
			}
		catch (IOException e) {}
		catch(InterruptedException ex){}	
		}
}







public class ChatMessengerWin {

    public static void main (String args[]) {
		ChatPanel panel = new ChatPanel();                     //erzeugt fensterfläche
		JFrame window = new JFrame("   CHAT MESSENGER");       //fenster rahmen
        window.addWindowListener(panel);
		window.add(panel);
		window.setPreferredSize(new Dimension(800, 590));      //fenstergrösse
		window.pack();                                         //verbindet fläche mit rahmen des fensters
		window.setResizable(false);                            //fenstergrösse nicht anpassbar
		panel.setBackground(new Color(91,91,245));                 //rot gruen blau zw 0 und 255 rgb werte
		                                                       //schriftfarbe:  variabel.setForeground(new(,,))
        window.setVisible(true);                               //fenster anzeigen
		Socket client = null;
		try {
			client = new Socket("192.168.123.195", 5555);           //socket erstellen (IP , port)
			Receiver r = new Receiver(new BufferedReader(new InputStreamReader(  //empfänger, der vom server die buchstaben direckt in zeilen zusammenfasst
														client.getInputStream())), panel);
			panel.setOutput(client);
			r.start();                                         //thread receiver starten
		}
		catch (IOException e) {
			System.out.println("Fehler bei der Verbindung");   // system.out heisst, dass diese nachricht in der konsole ausgegeben würde
		}
    }
}


es kann sehr gut sein dass einiges nicht gerade gut gelöst würde... (hauptsache es läuft)
zum teil sind auch meine komentare fehlerhaft (diejenigen stellen die nicht von mir sind, die ich nicht kapiere)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben