JTextArea verschwindet bei resize vom JFrame

judos

Neues Mitglied
Hallo zusammen,

Ich muss sagen ich bin neu hier und erst seit kurzem auf Java umgestiegen.
Ich versuche eine kleine GUI zu machen um etwas vertraut mit dem ganzen zu werden.

Ich möchte ein Fenster mit 3 Spalten, die sich proportional zueinander vergrössern/verkleinern, wenn man die Fenstergrösse ändert. Ich habe deshalb mal ein GridBagLayout genommen (bin mir nicht sicher ob dies das beste ist dafür).
In der letzten Spalte befindet sich unter anderem ein JTextArea in einem JScrollPane eingebetet. Es soll sich einfach der Breite der Spalte anpassen.

Wenn ich aber das Fenster kleiner mache, verschwindet die JTextArea ganz und es wird nur noch etwas kleines komisches angezeigt. (Siehe Screenshot)

Ich habe ziemlich mit setMinimumSize,setMaximumSize,setPreferedSize und den Angaben bei new JTextArea(rows,columns) herumgespielt und das hat mich eigentlich mehr verwirrt als geholfen.
Die Angaben von setMinimumSize und setMaximumSize scheint mein GridBagLayout zudem überhaupt nicht einzuhalten.

Hier mal der Code:
Java:
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.util.ArrayList;

import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.border.Border;


public class Window {

	private JFrame jframe;
	private DefaultListModel listModel;

	private String lastFilter;
	
	public static void main(String [] args) {
		new Window();
	}

	public Window() {
		this.lastFilter = "";
		this.jframe = new JFrame();
		jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//		jframe.setMinimumSize(new Dimension(400,300));

//		jframe.addWindowListener(new WindowListener());
		jframe.setTitle("Kontaktliste ");

		GridBagLayout borderLayout = new GridBagLayout();
		GridBagConstraints c=new GridBagConstraints();
		jframe.setLayout(borderLayout);
		c.anchor=GridBagConstraints.NORTH;
		c.fill=GridBagConstraints.BOTH;
		c.gridx=0;
		c.gridy=0;
		c.weightx=1;
		c.weighty=1;
		jframe.add(createWestPanel(), c);
		c.weightx=1;
		c.gridx=1;
		jframe.add(createCenterPanel(), c);
		c.weightx=0.2;
		c.gridx=2;
		jframe.add(createEastPanel(), c);

		// Fenster vollenden
		jframe.pack();
//		WindowHelpers.centerWindow(jframe);
		jframe.setVisible(true);

	}

	private Component createEastPanel() {
		JPanel panelRight = new JPanel();
		Border etchedBdr = BorderFactory.createMatteBorder(5, 5, 5, 5,
				new Color(240, 240, 255));
		panelRight.setBorder(etchedBdr);

		panelRight.setLayout(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();
		c.anchor = GridBagConstraints.NORTH;
		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 1;
		c.weighty = 1;

		panelRight.add(createEastPanel1(), c);
		c.gridy = 1;
		panelRight.add(createEastPanel2(), c);
		return panelRight;
	}

	private Component createEastPanel2() {
		JPanel panel2=new JPanel();
		return panel2;
	}

	private Component createEastPanel1() {
		JPanel panel = new JPanel();
		panel.setLayout(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();
		c.anchor = GridBagConstraints.NORTH;
//		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 1;
		c.weighty = 1;
		c.gridx = 0;
		c.gridy = 0;

		panel.add(new JLabel("Vorname Name"), c);
		c.weightx=1;
		c.fill=GridBagConstraints.NONE;
		JTextArea textarea = new JTextArea(10,1);
		textarea.setPreferredSize(new Dimension(200,0));
		textarea.setLineWrap(true);
		textarea.setWrapStyleWord(true);
		JScrollPane textPane = new JScrollPane(textarea);
		textPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
//		textPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
		textPane.setPreferredSize(new Dimension(200,150));
		textPane.setAutoscrolls(false);
		c.gridy = 1;
		panel.add(textPane, c);
		return panel;
	}

	private Component createCenterPanel() {
		Border etchedBdr = BorderFactory.createMatteBorder(5, 5, 5, 5,
				new Color(240, 240, 255));
		JPanel panelMitte = new JPanel();
		// etchedBdr.
		panelMitte.setBorder(etchedBdr);

		panelMitte.setLayout(new GridLayout(1, 1));

		// Inhalt Mittleres Panel
		listModel = new DefaultListModel();
//		refreshNodes();
		JList list = new JList(listModel);
		list.setMinimumSize(new Dimension(100,100));
		list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//		list.addListSelectionListener(new ListListener());
		list.setVisibleRowCount(20);
		JScrollPane listScrollPane = new JScrollPane(list);
		panelMitte.add(listScrollPane);

//		list.addMouseListener(new ListMouseListener(list));

		return panelMitte;
	}

	private JPanel createWestPanel() {
		JPanel panelLeft = new JPanel();
		Border etchedBdr = BorderFactory.createMatteBorder(5, 5, 5, 5,
				new Color(240, 240, 255));
		panelLeft.setBorder(etchedBdr);

		panelLeft.setLayout(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();
		c.anchor = GridBagConstraints.NORTH;
		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 1;
		c.weighty = 1;

		panelLeft.add(createWestPanel1(), c);
		c.gridy = 1;
		panelLeft.add(createWestPanel2(), c);
		return panelLeft;
	}

	private JPanel createWestPanel1() {
		JPanel panelLeft1 = new JPanel();
		panelLeft1.setLayout(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();
		c.fill = GridBagConstraints.BOTH;
		c.weightx = 0;
		c.weighty = 1;
		c.gridx = 0;
		c.gridy = 0;
		panelLeft1.add(new JLabel("Person:"), c);
		c.gridx = 1;
		c.gridy = 0;
		c.weightx=1;
		JTextField personTextField = new JTextField(13);
		personTextField.setMaximumSize(new Dimension(120,30));
		personTextField.setMinimumSize(new Dimension(50,15));
//		personTextField.addKeyListener(new PersonKeyListener(personTextField));
		panelLeft1.add(personTextField, c);
		c.gridx = 0;
		c.gridy = 1;
		c.weightx=0;
		panelLeft1.add(new JLabel("Gruppe:"), c);
		c.gridx = 1;
		c.gridy = 1;
		c.weightx=1;
		JTextField gruppeTextField = new JTextField(13);
		gruppeTextField.setMaximumSize(new Dimension(120,30));
		gruppeTextField.setMinimumSize(new Dimension(50,15));
		panelLeft1.add(gruppeTextField, c);

		return panelLeft1;
	}

	private JPanel createWestPanel2() {
		// Linkes Panel Nr2
		JPanel panelLeft2 = new JPanel();
		return panelLeft2;
	}

}

Im Anhang: 1.jpg (Der Fehler) und 2.jpg (Wie es richtig aussieht am Anfang)


/edit1: Fast vergessen: Ich verwende Eclipse Classic, und mein Betriebsystem ist Windows XP. Tut aber wohl nicht viel zu Sache hier.


Ich bin froh für jeden Hinweis.

Beste Grüsse,
judos
 

Anhänge

  • 1.jpg
    1.jpg
    17,6 KB · Aufrufe: 36
  • 2.JPG
    2.JPG
    16,7 KB · Aufrufe: 32
Zuletzt bearbeitet:

tagedieb

Top Contributor
SetMinimumSize funktioniert schon, aber du musst es (auch) auf dem JScrollPane setzen.


[JAVA=113]
textPane.setMinimumSize(new Dimension(200, 150));
textPane.setPreferredSize(new Dimension(200, 150));
[/code]
 

judos

Neues Mitglied
Super ja, wenn man bei allen Elementen PreferedSize und MinimumSize darstellt dann funktioniert das.

Beim SrollPane war es wohl vorallem dies, was den Fehler ausgelöst hat.

Damit [Erledigt].

Grüsse judos
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JTextArea text verschwindet bei mausklick AWT, Swing, JavaFX & SWT 5
D DropDownSelection Box verschwindet hinter JTextArea AWT, Swing, JavaFX & SWT 2
T Swing Mehrere Ausgaben in JTextArea AWT, Swing, JavaFX & SWT 2
B JPanel-Inhalte inkl. JTextarea zoomen? AWT, Swing, JavaFX & SWT 3
P JTextarea (in JScrollPane) zeigt nur die beiden letzten Einträge an? AWT, Swing, JavaFX & SWT 0
RedEagle Swing JTextArea ist leer AWT, Swing, JavaFX & SWT 13
E Warum wird Text im JTextArea erst am Programmende angezeigt ? AWT, Swing, JavaFX & SWT 1
E wie in JScrollPane auf JTextArea zugreifen AWT, Swing, JavaFX & SWT 12
K Swing 2 JTextArea parrallel scrollable AWT, Swing, JavaFX & SWT 16
Hatsi09 JTextArea Inhalt verlinken AWT, Swing, JavaFX & SWT 4
ralfb1105 jTextArea Scrollbar hinzufügen - mit Jigloo erstellt AWT, Swing, JavaFX & SWT 7
S Ausgabe in JTextArea AWT, Swing, JavaFX & SWT 13
H JTextArea - farbige Zeilen .. bitte um Vorschläge zur Implementierung AWT, Swing, JavaFX & SWT 1
F 2D-Grafik JTextArea drucken bringt mieses Ergebnis AWT, Swing, JavaFX & SWT 2
Mario1409 Swing JTextArea scroll Problem AWT, Swing, JavaFX & SWT 0
Bluedaishi JTextArea gefundene Zeile nach Oben Scrollen AWT, Swing, JavaFX & SWT 13
S JTextArea Text nach oben wandern lassen AWT, Swing, JavaFX & SWT 7
Bluedaishi JtextArea AWT, Swing, JavaFX & SWT 6
V JScrollBar soll weiterscrollen, wenn Inhalt von JTextArea erweitert wird AWT, Swing, JavaFX & SWT 7
G JTextArea mit JScrollPane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
Bluedaishi JDialog modal und JTextArea AWT, Swing, JavaFX & SWT 4
F JTextarea Steuern ~ consolenanbindung AWT, Swing, JavaFX & SWT 5
F Event Handling JTextArea auf bestimmte Eingabe reagieren (Return-Taste) AWT, Swing, JavaFX & SWT 2
F JTextArea hat keinen Rahmen AWT, Swing, JavaFX & SWT 10
N JTextArea Events weiterleiten AWT, Swing, JavaFX & SWT 3
R JTextArea mit verschiedenen Textfarben AWT, Swing, JavaFX & SWT 6
M JTextArea wird nicht aktualisiert (ActionListener-Problem) AWT, Swing, JavaFX & SWT 1
HoloYoitsu jTextArea.setCaretPosition(); What am I doing wrong? AWT, Swing, JavaFX & SWT 0
S Zeilenumbruch jTextArea mit toString AWT, Swing, JavaFX & SWT 2
F Swing String[] in JTextArea ausgeben. Jeder Eintrag in neue Zeile, aber ohne "\n"- Geht das? AWT, Swing, JavaFX & SWT 3
M JTextArea - Leertaste "sperren" AWT, Swing, JavaFX & SWT 1
S Inhalt der Java-Konsole in die JTextArea AWT, Swing, JavaFX & SWT 3
M Swing JTextArea mit ScrollBar AWT, Swing, JavaFX & SWT 9
S Swing Zahl der Zeilenumbrüche in einer JTextArea bestimmen AWT, Swing, JavaFX & SWT 1
F Swing Caret in JTextArea vergrößern AWT, Swing, JavaFX & SWT 2
D JTextArea auf KeyListener Command AWT, Swing, JavaFX & SWT 6
N JFrame änliches wie JTextArea? AWT, Swing, JavaFX & SWT 2
A Swing JTextArea - Multi-Line-Editing AWT, Swing, JavaFX & SWT 2
A Swing JTextArea aus anderer Klasse in realtime aktualisieren AWT, Swing, JavaFX & SWT 3
O JTextArea befüllen AWT, Swing, JavaFX & SWT 2
G JTextArea on the fly aus anderem Programm befüllen AWT, Swing, JavaFX & SWT 4
A Swing Einrücken mehrerer Zeilen per Tab in einem JTextPane/JTextArea AWT, Swing, JavaFX & SWT 3
T Swing Ausgabe aus ArrayList in Klasse1 in jTextArea in Klasse2 AWT, Swing, JavaFX & SWT 2
B JTextArea Größe an Container anpassen AWT, Swing, JavaFX & SWT 2
B Drucken der JTextArea AWT, Swing, JavaFX & SWT 4
M JTextArea Zeile hinzufügen AWT, Swing, JavaFX & SWT 4
C JTextArea scrollt bei append(String) aus Threads nicht ans Ende AWT, Swing, JavaFX & SWT 7
P JPanel- Listener durch JTextArea aktivieren AWT, Swing, JavaFX & SWT 8
A JTextArea - Zeichenbegrenzung nach .txt Datei import AWT, Swing, JavaFX & SWT 6
M Swing JScrollPane (Parent JTextArea) aktualisieren + neue Zeile AWT, Swing, JavaFX & SWT 5
Hoppelmann Swing Tasten in JTextArea blockieren AWT, Swing, JavaFX & SWT 2
S JTextArea Tastaturanschläge AWT, Swing, JavaFX & SWT 2
E Swing JTextArea in JFrame, wie nun WindowFocusListener implementieren? AWT, Swing, JavaFX & SWT 2
S Problem mit JButton und JTextArea AWT, Swing, JavaFX & SWT 2
J Swing Mitwachsende JTextArea+ JPanel AWT, Swing, JavaFX & SWT 4
P Swing JtextArea füllen mit setText AWT, Swing, JavaFX & SWT 7
M Probleme mit der Selektion einer JTextArea AWT, Swing, JavaFX & SWT 3
T Die Größe einer JTextArea an Ihren Parent JPanel anpassen. AWT, Swing, JavaFX & SWT 5
hdi Swing ListCellRenderer + JTextArea + LineWrap AWT, Swing, JavaFX & SWT 6
T ComponentOrientation in JTextArea AWT, Swing, JavaFX & SWT 3
H Hintergrundbild in jTextArea AWT, Swing, JavaFX & SWT 4
G Swing JTextArea mit fester Anzahl Spalten! AWT, Swing, JavaFX & SWT 10
G ein JTextArea in zwei JPanels AWT, Swing, JavaFX & SWT 2
L JTextArea mit JScrollPane AWT, Swing, JavaFX & SWT 7
padde479 Swing replace JTextArea funktioniert nicht AWT, Swing, JavaFX & SWT 2
L Zeilenumbrüche aus JTextArea MIT in Textdatei schreiben AWT, Swing, JavaFX & SWT 4
_dp jTextArea/jTextPanel Auto Höhe AWT, Swing, JavaFX & SWT 5
Ollek JTextArea - Feste Zeilenanzahl(8 Zeilen) AWT, Swing, JavaFX & SWT 3
S Swing JTextArea während der Laufzeit füllen AWT, Swing, JavaFX & SWT 5
Ollek Text in JTextField und JTextArea zur Laufzeit ändern AWT, Swing, JavaFX & SWT 6
P Datenelement anderer Klasse in JTextArea ausgeben AWT, Swing, JavaFX & SWT 4
P Scrollbar JTextArea AWT, Swing, JavaFX & SWT 23
M Swing Ausgabe in JTextArea verzögern AWT, Swing, JavaFX & SWT 7
T Swing jTextArea soll sich der Fenstergröße anpassen beim ziehen?? AWT, Swing, JavaFX & SWT 2
S System.out in JTextArea AWT, Swing, JavaFX & SWT 4
S Swing JTextArea - Bild auf/ab Tasten implementieren AWT, Swing, JavaFX & SWT 4
VfL_Freak "setAccelerator/KeyStroke" bei JTextArea ? AWT, Swing, JavaFX & SWT 6
P Swing JTextArea - beim neuzeichnen bleibt manchmal weißer Kasten AWT, Swing, JavaFX & SWT 10
Dit_ JTextArea zu Zeile X scrollen AWT, Swing, JavaFX & SWT 4
H variable Höhe einer JTextArea (als Renderer/Editor) als Zelle einer JTable AWT, Swing, JavaFX & SWT 9
B Wechsel JTextArea und JComponent AWT, Swing, JavaFX & SWT 9
M [erledigt] Bestimmte Zeile aus JTextArea löschen AWT, Swing, JavaFX & SWT 3
G Swing JTable und JTextArea synchronisieren AWT, Swing, JavaFX & SWT 2
C JLabel, JTextArea, JScrollPane. repaint(); ? AWT, Swing, JavaFX & SWT 6
M JTextArea AWT, Swing, JavaFX & SWT 2
E Swing JTextArea Alternative? AWT, Swing, JavaFX & SWT 5
A Swing JTextArea über Frame hinaus anzeigen? AWT, Swing, JavaFX & SWT 2
S JInternalFrame oder JTextArea neu laden AWT, Swing, JavaFX & SWT 2
N JTextArea.setLineWrap Bug? AWT, Swing, JavaFX & SWT 3
N Swing JTextArea/JScrollpane: JScrollbar position AWT, Swing, JavaFX & SWT 8
I JTextArea mit Copy Paste Funktion AWT, Swing, JavaFX & SWT 7
M Swing JTextArea größe anpassen & setBackground liefer Nullpointer AWT, Swing, JavaFX & SWT 4
Plastagen JTextArea CaretPosition Aktualisierung AWT, Swing, JavaFX & SWT 10
C JTextField und JTextArea - Verständnisproblem AWT, Swing, JavaFX & SWT 14
B Exceptions werfen und in JTextArea ausgeben AWT, Swing, JavaFX & SWT 4
F new Line in JTextarea AWT, Swing, JavaFX & SWT 15
X Problem bei JTextArea und Thread.sleep() AWT, Swing, JavaFX & SWT 8
J Beliebtes Problem: Scrollbar in JTextArea AWT, Swing, JavaFX & SWT 4
w0ddes Swing JTextArea auf JScrollPane - Autoscroll?! AWT, Swing, JavaFX & SWT 2
Developer_X Swing Java JTextArea auto scroll down AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben