SWT Breite von Textfeld nur ohne Layout änderbar

Mizar

Aktives Mitglied
Hallo alle miteinander :)

Wie der Threadtitel bereits implizit verrät, habe ich bei SWT das Problem, dass sich die Breite eines Textfeldes unter Verwendung eines Layoutmanagers nicht mehr ändern lässt. Folgendes habe ich vor. Ich habe zum Beispiel ein Textfeld, in dem nur 2 Zeichen eingetragen werden können (mit setTextLimit() kann man dies ja problemlos festlegen). Nun soll das Textfeld auch nur so breit sein, das es gerade diese beiden Zeichen und nicht mehr anzeigt. Auf der SWT Seite gibt es dafür ja auch ein entsprechendes Snippet, das leicht angepasst so aussieht:
Java:
public class OhneLayout
{
	public void startGui(int anzahlZeichen)
	{
		Display display = new Display();
		Shell shell = new Shell(display);
		
		shell.setText("Ohne Layout");
		
		Text text = new Text(shell, SWT.BORDER);
		GC gc = new GC(text);
		int breite = gc.getFontMetrics().getAverageCharWidth();
		gc.dispose();
		text.setSize(text.computeSize(anzahlZeichen * breite, SWT.DEFAULT));
		text.setTextLimit(anzahlZeichen);
		
		shell.pack();
		shell.open();
		while(!shell.isDisposed()) {
			if(!display.readAndDispatch()) {
				display.sleep();
			}
		}
		display.dispose();
	}
}
So funktioniert es auch bei mir. Wenn man nun einen Layoutmanager hinzufügt, funktioniert das ganze allerdings nicht mehr:
Java:
public class MitLayout
{
	public void startGui(int anzahlZeichen)
	{
		Display display = new Display();
		Shell shell = new Shell(display);
		
		shell.setText("Mit Layout");
		shell.setLayout(new GridLayout()); // Als Beispiel ein GridLayout
		
		Text text = new Text(shell, SWT.BORDER);
		GC gc = new GC(text);
		int breite = gc.getFontMetrics().getAverageCharWidth();
		gc.dispose();
		text.setSize(text.computeSize(anzahlZeichen * breite, SWT.DEFAULT));
		text.setTextLimit(anzahlZeichen);
		
		shell.pack();
		shell.open();
		while(!shell.isDisposed()) {
			if(!display.readAndDispatch()) {
				display.sleep();
			}
		}
		display.dispose();
	}
}
Hier noch eine entsprechende Main-Funktion, falls es jemand auch testen will:
Java:
public class Main
{
	public static void main(String[] args)
	{
		int anzahlZeichen = 2;
		new OhneLayout().startGui(anzahlZeichen);
		new MitLayout().startGui(anzahlZeichen);
	}
}
Nun lautet meine Frage, ob jemand weiß wie man so eine entsprechende Größenänderung eines Textfeldes auch unter Verwendung eines Layoutmanagers hinbekommt.
 

Wildcard

Top Contributor
Der Layout Manager ruft setSize auf und überschreibt deine Werte. Setze ein GridData Objekt als Layout Data auf das Textfeld und gib dem GridData einen Width-Hint
 

Mizar

Aktives Mitglied
Super, das funktioniert einwandfrei. Hier ein Codeschnipsel für alle die ein ähnliches Problem haben sollten:
Java:
// Code in Klasse "MitLayout"
GridData data = new GridData(anzahlZeichen * breite, SWT.DEFAULT);
text.setLayoutData(data);
// Rest wie oben
Vielen lieben Dank Wildcard.:)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Jose05 Javafx Label Höhe=Breite AWT, Swing, JavaFX & SWT 1
W JavaFX Button - optimale Breite berechnen AWT, Swing, JavaFX & SWT 1
J Gridpane Breite in Scrollpane automatisch anpassen AWT, Swing, JavaFX & SWT 2
G JavaFX - bugs bei der ermittlung der breite der nodes AWT, Swing, JavaFX & SWT 3
G Rectangle Breite richtet such an die Breite vom Text AWT, Swing, JavaFX & SWT 1
R Java FX - Fxml - relative Größenangaben für Breite und Höhe einer TextArea AWT, Swing, JavaFX & SWT 8
C JavaFX TableColumn - TableColumn Breite AWT, Swing, JavaFX & SWT 8
D Swing Breite einer HTML Tabelle in einer JTextPane AWT, Swing, JavaFX & SWT 6
Z Java Draw -JFrame finde nicht die Mitte & höhe, breite AWT, Swing, JavaFX & SWT 7
F Breite beim GridBagLayout festlegen AWT, Swing, JavaFX & SWT 2
T Swing JScrollPane in JPanel - Breite dynamisch, Höhe fix - wie? AWT, Swing, JavaFX & SWT 2
A trotz setSize keine breite AWT, Swing, JavaFX & SWT 4
M Wie ermittele ich die Breite und Höhe meines Displays in Pixel AWT, Swing, JavaFX & SWT 3
K JSpinner in passender Breite erstellen oder automatisch anpassen AWT, Swing, JavaFX & SWT 2
E Breite eines JButton dynamisch ändern AWT, Swing, JavaFX & SWT 3
S JTable Spalte "normale" Breite? AWT, Swing, JavaFX & SWT 5
N Swing Optimale Höhe eine JTextPanes bei festgelegter Breite bestimmen AWT, Swing, JavaFX & SWT 23
L TreeViewerColumn - gesamte TreeView-breite nutzen? AWT, Swing, JavaFX & SWT 5
M 2 Buttons mit derselben Breite AWT, Swing, JavaFX & SWT 9
4 Shapes Informationen wie Breite usw. mitgeben AWT, Swing, JavaFX & SWT 5
B JFileChooser breite der Spalten? AWT, Swing, JavaFX & SWT 5
B Label breite ermitteln vor dem rendern? AWT, Swing, JavaFX & SWT 7
A FormLayout Panel-Breite AWT, Swing, JavaFX & SWT 7
Dit_ Swing JComboBox | Breite des Scrollbalkens AWT, Swing, JavaFX & SWT 4
D JFreeChart Breite (width) ändern AWT, Swing, JavaFX & SWT 6
Rudolf Swing Swing Button breite stanardisieren AWT, Swing, JavaFX & SWT 2
N Swing JPanel Nur Breite festlegen AWT, Swing, JavaFX & SWT 7
M breite eines "drawString()-Strings" AWT, Swing, JavaFX & SWT 2
F JTabbedPane Reiter breite AWT, Swing, JavaFX & SWT 4
F 2D-Grafik Problem mit höhe||breite eines JFrames AWT, Swing, JavaFX & SWT 4
E Wie Breite und Höhe eines Panels festlegen? AWT, Swing, JavaFX & SWT 5
H SWT Breite von componenten zu bestimmen AWT, Swing, JavaFX & SWT 2
S JSlider Track Breite und Farbe AWT, Swing, JavaFX & SWT 2
N breite von JList festlegen AWT, Swing, JavaFX & SWT 3
E Layoutmanager mit fester Breite gesucht AWT, Swing, JavaFX & SWT 9
reibi SWT Breite Taskleiste herausfinden AWT, Swing, JavaFX & SWT 2
C Breite JTextArea/JScrollPane setzen AWT, Swing, JavaFX & SWT 4
S Swing JTable: Spalten mit relativer Breite im ungleichmäßigen Verhältnis AWT, Swing, JavaFX & SWT 2
M Swing JTable + JScrollPane (Breite und Höhenproblem) AWT, Swing, JavaFX & SWT 1
S Für Breite und Höhe werden 0.0 angezeigt AWT, Swing, JavaFX & SWT 2
C Swing JTextArea mit fester Breite und angepasster Höhe??? AWT, Swing, JavaFX & SWT 8
S Table oder TableModel so ueberschreiben, dass Columns minimale Breite haben? AWT, Swing, JavaFX & SWT 2
D JtoolBar feste Breite ? AWT, Swing, JavaFX & SWT 13
P Breite und Höhe des contentPane abfragen AWT, Swing, JavaFX & SWT 3
Y Einzigartigkeit des GridBagLayout - individuelle Höhe/Breite AWT, Swing, JavaFX & SWT 4
J JTextPane mit genau 80 Zeichen breite definieren? AWT, Swing, JavaFX & SWT 3
T Breite des Containers ist gegeben - wie die Höhe berechnen? AWT, Swing, JavaFX & SWT 3
V Swing: Konstant breite Sidebar AWT, Swing, JavaFX & SWT 2
D Breite eines JScrollPane AWT, Swing, JavaFX & SWT 3
B Feste Breite einer JTextPane, die HTML anzeigt AWT, Swing, JavaFX & SWT 8
G JMenu problem mit der Breite von einer JCheckBox AWT, Swing, JavaFX & SWT 2
A JTextFiled-Breite und Höhe ändern AWT, Swing, JavaFX & SWT 3
B horizontale bzw. vertikale JScrollBar breite von JScrollPane AWT, Swing, JavaFX & SWT 5
S JTable - Breite der Linien AWT, Swing, JavaFX & SWT 8
D GridBagLayout: 2. Spalte auf JPanel-Breite expandieren AWT, Swing, JavaFX & SWT 2
S Feste Breite und Höhe für einen formatierten Text. AWT, Swing, JavaFX & SWT 5
F JTable: Spaltenbreiten an Breite der Zelleninhalte anpassen AWT, Swing, JavaFX & SWT 5
lhein Breite der Scrollbar in einer Combobox ändern AWT, Swing, JavaFX & SWT 5
G Klasse Image - Höhe und Breite ermitteln AWT, Swing, JavaFX & SWT 12
Z Column Breite in JTable automatisch an Inhalt anpassen AWT, Swing, JavaFX & SWT 3
R Breite von JTextField in einem GridBagLayout begrenzen AWT, Swing, JavaFX & SWT 3
P Breite eines JScrollbar vergrößern, aber wie? AWT, Swing, JavaFX & SWT 8
B JEditorPane: Höhe für bestimmte Breite bestimmen AWT, Swing, JavaFX & SWT 4
K JTextfield - breite AWT, Swing, JavaFX & SWT 3
S JPanel in JScrollPane in der Breite begrenzen AWT, Swing, JavaFX & SWT 3
K Höhe und Breite eines Panels im GridBagLayout ermitteln AWT, Swing, JavaFX & SWT 9
M Breite veraendern zwischen 2 JPanels AWT, Swing, JavaFX & SWT 2
D JLabel mit fester Breite und beliebiger Höhe AWT, Swing, JavaFX & SWT 4
L wie kann man die Höhe und Breite von JList festlegen AWT, Swing, JavaFX & SWT 3
D Button und Textfeld Darstellung AWT, Swing, JavaFX & SWT 3
B Scene Builder Textfeld Begrenzen AWT, Swing, JavaFX & SWT 3
T JavaFX MultiLine / MultiStyle Textfeld AWT, Swing, JavaFX & SWT 1
izoards Textfeld für Zeit AWT, Swing, JavaFX & SWT 4
E Frage zum Textfeld AWT, Swing, JavaFX & SWT 8
B Ausgaben einer Umrechnung vom Textfeld in ein Label AWT, Swing, JavaFX & SWT 2
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
J SWT Textfeld markieren und kopieren AWT, Swing, JavaFX & SWT 0
A Swing nur Zahlen im Spinner(Textfeld) eingeben ! AWT, Swing, JavaFX & SWT 16
L Ein Actionlistener für ein Textfeld, anstatt viele Actionlistener für ein Textfeld AWT, Swing, JavaFX & SWT 7
karlmasutra JavaFX Verzeichnispfad wählen und an Textfeld übergeben AWT, Swing, JavaFX & SWT 2
J Text in ein Textfeld eingeben und speichern AWT, Swing, JavaFX & SWT 27
cool_brivk24 Großes Textfeld AWT, Swing, JavaFX & SWT 8
J Textfeld nicht sichtbar AWT, Swing, JavaFX & SWT 2
P Knopf gedrückt -> Textfeld befüllen AWT, Swing, JavaFX & SWT 9
P Variable einer Eingabe in anderes Textfeld schreiben AWT, Swing, JavaFX & SWT 7
T [Neuling] Textfeld Inhalt überprüfen und falsche Stellen als msg Ausgeben AWT, Swing, JavaFX & SWT 1
V Swing Eingabe aus Textfeld abholen AWT, Swing, JavaFX & SWT 6
K Swing Textfeld verstecken aber benutzen AWT, Swing, JavaFX & SWT 15
J Swing Strings werden nicht in Textfeld geschrieben AWT, Swing, JavaFX & SWT 8
P Anfängerproblem mit Textfeld AWT, Swing, JavaFX & SWT 6
C Textfeld und Label werden nicht angezeigt (Ubuntu) AWT, Swing, JavaFX & SWT 2
F Textfeld Währungszahlen und automatische Aktualisierung AWT, Swing, JavaFX & SWT 14
R AWT AWT Textfeld durch Klick auf Button erstellen? AWT, Swing, JavaFX & SWT 3
D JavaFX Textfeld Eingabe validieren AWT, Swing, JavaFX & SWT 5
W Swing Nicht-Editierbares Textfeld in Panel in ScrollPane AWT, Swing, JavaFX & SWT 9
T SWT Button soll nur sichbar sein,wenn im Textfeld der Focus ist AWT, Swing, JavaFX & SWT 4
A Textfeld.append/.setText ohne Funktion AWT, Swing, JavaFX & SWT 2
G Text im textfeld in einem Editor anzeigen AWT, Swing, JavaFX & SWT 18
A Swing Zwei Klassen mit Textfeld Eingaben vergleichen und Ausgabe erzeugen AWT, Swing, JavaFX & SWT 10
N JavaFX Textfeld nur Zahlen und nur von 5 bis 30 AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen

Neue Themen


Oben