Textfelder vergrößern

Status
Nicht offen für weitere Antworten.

Extractor

Aktives Mitglied
Hallo!

Mit welcher Eigenschaft kann man Textfelder in einem Frame in eine Richtung größer bzw. kleiner ziehen?

Code:
//input-field
	    input = new JTextField();
	    panel1.add(input, BorderLayout.CENTER);


Ich habe nach so etwas gesucht wie "sizeable", habe aber nichts gefunden.

Schonmal vielen Dank!


Gruß Jan
 

Leroy42

Top Contributor
Die Methode setPreferredSize ist das was du suchst.

Du mußt aber beachten welchen LayoutManager du verwendest.
 

Extractor

Aktives Mitglied
Hallo!

Bei setPreferredSize muss ich doch eine feste Dimension angeben.

Vielleicht habe ich die Frage falsch gestellt.

Ich möchte in dem Fenster mit der Maus ein Element größer ziehen bzw. kleiner ziehen.

Und diese Eigenschaft die das dann erlaubt benötige ich, wenn das beim Borderlayout überhaupt geht.



Schonmal vielen Dank!

Gruß Jan
 

Leroy42

Top Contributor
Beim BorderLayout kann es gar nicht gehen, da die dort
pla(t)zierten Komponenten immer die Maximalausdehnung
je nach BorderLayout-Region zugewiesen bekommen.

Auch ansonsten gibt es keine Java-Bordmittel um die Größe von
GUI-Komponenten (außer (J)Frame) mit der Maus zu verändern.

Dies bieten noch nichtmal die bekannten Betriebssysteme oder hast
du schonmal versucht einen nativen WinDoof-Button mit der Maus
zu vergrößern? :autsch:
 

Leroy42

Top Contributor
Extractor hat gesagt.:
ok. Lassen wir das ma. :lol:

Nein, nein! So war das nicht gemeint. :shock:

Schreib' du ruhig mal ein GUI-Library die das ermöglicht.

Ich übernehme dann, nach Bereitstellung des Source-Codes,
auch gerne den ausführlichen Test. :cool:
 

Extractor

Aktives Mitglied
Habs jetzt mit JSplitPane hinbekommen.

Welches Argument muss ich denn jetzt noch angeben, damit sich das Feld proportional verhält, wenn ich das Fenster größer ziehe?

Code:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class ChatClient extends JFrame{

	JTextArea output;
	JTextField input;
	
	public ChatClient(){
		
						
		//initialize
		setTitle("Chat & Bot");
	    getContentPane().setLayout(new BorderLayout(5,5));		//(5,5)Abstand zwischen den Elementen
	    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    setSize(600, 400);
	    
	    
	    //output-field
	    output = new JTextArea();
	    output.setEditable(true);
	    output.setLineWrap(true); 		//automatischer Zeilenumbruch
		output.setWrapStyleWord(true);	//Bei Zeilenumbruch Wort nicht trennen
	    JScrollPane scrollerOutput = new JScrollPane();
	    scrollerOutput.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
	    scrollerOutput.getViewport().setView(output);
	    scrollerOutput.setPreferredSize(new Dimension(450,350));
	    getContentPane().add(scrollerOutput, BorderLayout.CENTER);
	    	  
	    	    
	    //UserList
	    String[] user = {"Test", "Test2", "Test3"};
	    JList userlist = new JList(user);
        JScrollPane scrollerUserList = new JScrollPane();
        scrollerUserList.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        scrollerUserList.getViewport().setView(userlist);
	    getContentPane().add(scrollerUserList, BorderLayout.EAST);
        
                
        //SplitPane
        JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
        splitPane.setRightComponent(scrollerUserList);
        splitPane.setLeftComponent(scrollerOutput);
        splitPane.setOneTouchExpandable(true);
        splitPane.setContinuousLayout(true);
        getContentPane().add(splitPane, BorderLayout.CENTER);

	   	    
        //panel1
	    JPanel panel1 = new JPanel();
	    panel1.setLayout(new BorderLayout(5,5));
	    getContentPane().add(panel1, BorderLayout.SOUTH);
	    
        //send-button
        JButton send = new JButton("Send");
	    panel1.add(send, BorderLayout.EAST);
        send.addActionListener(new ActionListener() {
	      public void actionPerformed(ActionEvent e) {
	    	  //send Message
	      }
	    });
	 
	    //input-field
	    input = new JTextField();
	    panel1.add(input, BorderLayout.CENTER);    
	    
	    //MenuBar
	    JMenuBar menuBar = new JMenuBar();
	    this.setJMenuBar(menuBar);
	    //File
	    JMenu fileMenu = new JMenu("File");
	    menuBar.add(fileMenu);
	    fileMenu.add(new AbstractAction("Close") {
	       public void actionPerformed(ActionEvent e) {
	    	   close();
	       }
	     });
	    
	    //Help
	    JMenu helpMenu = new JMenu("?");
	    menuBar.add(helpMenu);
	    helpMenu.add(new AbstractAction("Help") {
		   public void actionPerformed(ActionEvent e) {
		   	   //Action Help
		   }
		   });
	} //end c-tor
		
	
	//Close-Window
	public void close (){
		System.exit(0);
	}
	
	
	public static void main(String[] args) {
		
		ChatClient client = new ChatClient();
		client.setVisible(true);
	}

}

Gruß Jan
 

Leroy42

Top Contributor
Extractor hat gesagt.:
Welches Argument muss ich denn jetzt noch angeben, damit sich das Feld proportional verhält, wenn ich das Fenster größer ziehe?

Da ich mich selbst nicht als Anfänger bezeichne, ich dir diese
Frage aber auch nicht beantworten kann, schließe ich einfach
mal, das das keine Anfängerfrage ist. :cool:

Versuch's mal im Teilforum. AWT, Swing und SWT.

Da treiben sich die GUI-Experten herum.
 
G

Guest

Gast
ich würde mal sagen, dass man bei der ganzen sache nur logisch vorgehen muss... das heißt die frage lautet:

Was passiert wenn ich mein Fenster in der Größe ändere?

Antwort: richtig ein componentResized event wird "gefired". Auf den muss deine Splitpane reagieren. Wie du das ganze implementierst (spezifisch, oder generell) ist deine Sache. Wirst du durch Dokulesen sicher rausfinden.


Mathematisch müsste dir auch klar sein, was zu tun ist... sowas wie

neueRechteHaelfte.breite = ( rechteHaelfte.breite / gesamtesFenster.breite ) * neuesGesamtesFenster.breite

.. fällt mir zumindest auf anhieb dazu ein.



ABER: Ehrlichgesagt.. wenn ich das Teil nutzen wollte, würde ich eigentlich erwarten, dass sich nur das eigentliche Chattextfenster vergrößert und die Liste mit Namen gleich breit bleibt. Schließlich kann man die bei Bedarf ja über die Splitpane vergrößern. Im Prinzip ist es aber im Moment genau umgekehrt - egal wie ich das Fenster ziehe (ob nun rechts oder links), es ist immer die "BuddyList" die vergrößert wird. Mach es genau umgekehrt. Das geht sicher einfach.. schau mal den Code durch und die java doc zur JSplitpane etc... da findest du sicher was und lernst auch noch bei. Für so ne Frage braucht man kein GUI Freak sein. Muss leider nach Hause, sonst hätte ich selbst schnell was gebrezelt. Viel Spass, hoffe ich konnte helfen oder zumindest mal in ne Richtung zeigen.
 

Extractor

Aktives Mitglied
ok! werde mal in der api schauen, ob ich was finde.
Ansonsten gehen ich es logisch an.

Vielen Dank!

Gruß Jan
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S gleichzeitiges Ansprechen vieler Textfelder Java Basics - Anfänger-Themen 2
T Wenn JFrame Textfelder Hintergrund Grün dann... (if) Java Basics - Anfänger-Themen 3
I Double.ParseDouble 2 Textfelder Java Basics - Anfänger-Themen 1
P Textfelder Java Basics - Anfänger-Themen 3
Jinnai4 Mehrere Textfelder überprüfen Java Basics - Anfänger-Themen 16
P Textfelder in Variablen speichern Java Basics - Anfänger-Themen 13
P JavaFX Textfelder geben immer null zurück Java Basics - Anfänger-Themen 8
N CaretListener: leere Textfelder = Button sperren Java Basics - Anfänger-Themen 11
N Problem bei Zugriff auf Textfelder Java Basics - Anfänger-Themen 6
A Ausgabe von Schleifenergebnissen in Textfelder Java Basics - Anfänger-Themen 9
U Dynmische Textfelder erstellen Java Basics - Anfänger-Themen 8
U Kreis um Textfelder zeichnen Java Basics - Anfänger-Themen 4
M Beim Start Methode laden die Textfelder füllt Java Basics - Anfänger-Themen 5
B 2 Textfelder Enter Taste Java Basics - Anfänger-Themen 3
S List angaben in textfelder Java Basics - Anfänger-Themen 7
M Feld übergeben & dann Werte in TextFelder schreiben Java Basics - Anfänger-Themen 4
N Frage zu Listener für Textfelder Java Basics - Anfänger-Themen 5
T Textfelder und ComboBoxen anderst anordnen? Java Basics - Anfänger-Themen 4
Antoras mit ActionListener/Methodenaufruf Textfelder zeichnen Java Basics - Anfänger-Themen 4
D Erstellte Textfelder in Applet mit Tab - Taste anspringen Java Basics - Anfänger-Themen 3
G Mehrere Textfelder zusammenfassen Java Basics - Anfänger-Themen 4
P Auf Textfelder einer anderen Klasse zugreifen? Java Basics - Anfänger-Themen 2
M Zugriff auf Textfelder über Referenzen? Java Basics - Anfänger-Themen 3
H Textfelder Java Basics - Anfänger-Themen 12
M Textfelder mit Schleife deklarieren? Java Basics - Anfänger-Themen 33
G Rahmen um 5 Textfelder Java Basics - Anfänger-Themen 4
G Anzahl Textfelder zur Laufzeit verändern. Java Basics - Anfänger-Themen 4
DeeDee0815 JRadioButton, actionPerformed und Textfelder Java Basics - Anfänger-Themen 2
P Anordnung Textfelder untereinander? Java Basics - Anfänger-Themen 16
C Textfelder auslesen Java Basics - Anfänger-Themen 3
G Änderungen in TextFelder feststellen Java Basics - Anfänger-Themen 4
G textfelder lassen sich nicht anwählen Java Basics - Anfänger-Themen 10
J Hintergrundfarbe für Textfelder Java Basics - Anfänger-Themen 4
M TextFelder synchronisieren Java Basics - Anfänger-Themen 14
D Suche ActionListener und Formatierung für Textfelder Java Basics - Anfänger-Themen 4
M Textfelder aus Array verändern Java Basics - Anfänger-Themen 3
M Viele Textfelder auslesen Java Basics - Anfänger-Themen 3
J Zuviele Textfelder und Labels Java Basics - Anfänger-Themen 2
N "On-The-Fly"-Textfelder Java Basics - Anfänger-Themen 2
G "dynamisch" Textfelder erzeugen Java Basics - Anfänger-Themen 4
O Array verkleinern, vergrößern Java Basics - Anfänger-Themen 1
S Methoden Feld vergrößern Java Basics - Anfänger-Themen 1
F Polygon vergrößern Java Basics - Anfänger-Themen 8
D Verhindern das repaint beim vergrößern aufgerufen wird Java Basics - Anfänger-Themen 9
J Erste Schritte Arrays vergrößern Java Basics - Anfänger-Themen 19
M Interface JFileChooser vergrößern Java Basics - Anfänger-Themen 4
F String immer weiter nach Bedarf vergrößern Java Basics - Anfänger-Themen 3
T Quader vergrößern Java Basics - Anfänger-Themen 12
A Java Arrays immer um eins "vergrößern" Java Basics - Anfänger-Themen 4
M Ziffer einträge vergrößern Java Basics - Anfänger-Themen 16
E JTextArea beim Schreiben automatisch vergrößern Java Basics - Anfänger-Themen 7
P JLabel auf JFrame - Schrift vergrößern Java Basics - Anfänger-Themen 2
T Array vergrößern Java Basics - Anfänger-Themen 6
L JPanel vergrößern bis JScrollPane nicht mehr zu sehen Java Basics - Anfänger-Themen 7
K Grafik vergrößern/verkleinern Java Basics - Anfänger-Themen 3
C Array vergrößern? Java Basics - Anfänger-Themen 8
S Dialog dynamisch vergrößern Java Basics - Anfänger-Themen 2
Z Array vergrößern Java Basics - Anfänger-Themen 15
B arrays dynamisch vergrößern Java Basics - Anfänger-Themen 5
N Applet Heap vergrößern Java Basics - Anfänger-Themen 10
G heap size vergrößern Java Basics - Anfänger-Themen 6
G zweidimensionales Array vergrößern Java Basics - Anfänger-Themen 3
D Array vergrößern Java Basics - Anfänger-Themen 7
S JPanel im nachhinein vergrößern? Java Basics - Anfänger-Themen 7
B Array im Nachhinein vergrößern? Java Basics - Anfänger-Themen 3
N JPanel / JTextArea vergrößern Java Basics - Anfänger-Themen 6
G array vergrößern Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben