Layout-Problem (JScrollPane, GridBagLayout)

Status
Nicht offen für weitere Antworten.

nEp

Aktives Mitglied
Hi,

ich hab irgendwie ein Problem mit meinem Layout und komme da nicht so recht weiter...
Also ich hab einen einfachen Dialog und in diesen will ich 3 Elemente platzieren: Einen JTree, darunter eine TextArea und darunter dann ein Panel mit 2 Buttons (Ok+Cancel). Sowohl den JTree als auch die TextArea will ich in ein JScrollPane einbetten. Die ganzen Komponenten arrangiere ich über ein GridBagLayout auf einem Panel, und dieses Panel füge ich dann dem Panel vom Dialog hinzu (-> Code).
Mein Problem ist jetzt: Benutze ich wie hier jetzt im Code die setPreferredSize-Methoden um die Größe von der TextArea und dem JTree einzustellen, dann haben diese Komponenten zwar die gewünschte Größe und alles sieht wunderbar aus im Fenster, ABER das JScrollPane funktioniert irgendwie nicht, d.h. es erscheinen keine Scrollbars wenn mehr im JTree oder in der TextArea steht, als eigentlich Platz hat.
Anders herum: Kommentiere ich die beiden setPreferredSize-Methoden aus, und benutze stattdessen die setSize-Methoden, dann funktioniert zwar das JScrollPane wie gewünscht, aber der JTree und die TextArea nehmen nicht die gewünschte Breite ein (die sind viel schmaler, und so schmal will ich die nicht habe).
Weiß jemand woran das liegen könnte, oder wie ich das anders machen könnte ? Bin für jede Hilfe dankbar.

Code:
//... im Konstruktor vom Dialog...

		okButton = new JButton("Ok");
		okButton.addActionListener(this);
		cancelButton = new JButton("Cancel");
		cancelButton.addActionListener(this);
		buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER,5,5));
		buttonPanel.add(okButton);
		buttonPanel.add(cancelButton);
		
		description = new JTextArea("Description of a constraint");
		description.setColumns(30);
		description.setRows(4);
		
		createTree(); //hier werden listener hinzugefügt (treeExpansion und treeSelection), und außerdem ein  eigener Renderer und Editor gesetzt usw
		
		constraintTree.setPreferredSize(new Dimension(485,100)); //constraintTree ist der JTree, der oben erzeugt wurde
		description.setPreferredSize(new Dimension(485,40));
		//constraintTree.setSize(485,100);
		//description.setSize(485,40);
		
		treeScrollPane = new JScrollPane(constraintTree, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		descriptionScrollPane = new JScrollPane(description, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		
		layoutPanel = new JPanel(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();
		
		c.gridx = 0;
		c.gridy = 0;
		c.gridwidth = 1;
		c.gridheight = 1;
		c.anchor = GridBagConstraints.NORTH;
		c.fill = GridBagConstraints.BOTH;
		c.insets = new Insets(0,0,12,0);
		layoutPanel.add(treeScrollPane,c);

		
		c.gridy++;
		c.fill = GridBagConstraints.BOTH;
		layoutPanel.add(descriptionScrollPane,c);
		
		c.gridy++;
		c.insets = new Insets(0,0,0,0);
		layoutPanel.add(buttonPanel,c);
		
		contentPanel = (JPanel)this.getContentPane();
		contentPanel.setLayout( new FlowLayout(FlowLayout.CENTER, 5, 10));
		contentPanel.add(layoutPanel);

          this.setLocation(new Point(150, 200));
		this.setSize(new Dimension(500, 600));
		//this.pack();
		this.setResizable(true);
		this.setVisible(true);
		validate();
 

André Uhres

Top Contributor
Also ich hab einen einfachen Dialog und in diesen will ich 3 Elemente platzieren:
Einen JTree, darunter eine TextArea und darunter dann ein Panel mit 2 Buttons
Code:
/*
 * Dialog_Test.java
 */
import java.awt.*;
import javax.swing.*;
public class Dialog_Test extends JDialog {
    public Dialog_Test(Frame parent, boolean modal) {
        super(parent, "Dialog Test", modal);
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        setSize(430,240);
        setLocationRelativeTo(parent);
        //Die JComponents erzeugen:
        splitpane = new JSplitPane();
        tree = new JTree();
        scrollingTree = new JScrollPane(tree);
        textarea = new JTextArea("test\ntest\ntest\ntest\ntest\ntest\ntest\ntest\n");
        scrollingTextarea = new JScrollPane(textarea);
        buttonsPanel = new JPanel();
        button1 = new JButton("button1");
        button2 = new JButton("button2");
        //Layout:
        splitpane.setDividerLocation(60);
        splitpane.setOrientation(JSplitPane.VERTICAL_SPLIT);
        splitpane.setLeftComponent(scrollingTree);
        splitpane.setRightComponent(scrollingTextarea);
        getContentPane().add(splitpane, BorderLayout.CENTER);
        buttonsPanel.add(button1);
        buttonsPanel.add(button2);
        getContentPane().add(buttonsPanel, BorderLayout.SOUTH);
    }
    public static void main(String args[]) {   new Dialog_Test(new JFrame(), true).setVisible(true);   }
    public JButton button1, button2;
    public JPanel buttonsPanel;
    public JScrollPane scrollingTree, scrollingTextarea;
    public JSplitPane splitpane;
    public JTextArea textarea;
    public JTree tree;
}
 

nEp

Aktives Mitglied
Hey, danke das funktioniert super :)
Lag das jetzt nur an der JSplitPane oder wie ? Versteh ich nicht so richtig, aber egal, hauptsache es funktioniert :)

Achso noch ne generelle Frage, ohne es jetzt vorher ausprobiert zu haben: Das ganze müsste dann ja auch funktionieren, wenn ich meinen Tree und die TextArea noch zusätzlich in ein Panel verpacke und die beiden Panels dann dem SplitPane übergebe (weil ich will später dann auch noch Labels über dem Tree und der TextArea haben, auf denen ne Beschreibung steht, für was das alles gut ist) ?
 

André Uhres

Top Contributor
nEp hat gesagt.:
Achso noch ne generelle Frage, ohne es jetzt vorher ausprobiert zu haben...
Obige Lösung hab ich durch Ausprobieren gefunden. Da ich auch noch Verständnislücken habe,
kann ich dir deine Frage nicht generell beantworten. :###
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Layout - Problem AWT, Swing, JavaFX & SWT 1
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
newJavaGeek Grid-Layout problem AWT, Swing, JavaFX & SWT 7
F Layout-Problem AWT, Swing, JavaFX & SWT 2
D Problem mit 3-Spalten Layout AWT, Swing, JavaFX & SWT 17
A Problem mit Layout-Manager AWT, Swing, JavaFX & SWT 11
B LayoutManager Layout Problem AWT, Swing, JavaFX & SWT 14
A SWT Layout Problem AWT, Swing, JavaFX & SWT 15
K Swing Layout-Problem mit JTables und JLists (Mindestgrößen) AWT, Swing, JavaFX & SWT 11
N SWT Einfaches Problem beim Layout AWT, Swing, JavaFX & SWT 8
V Layout Problem AWT, Swing, JavaFX & SWT 5
M JPanel Layout Problem AWT, Swing, JavaFX & SWT 11
I Layout Problem beim Skalieren AWT, Swing, JavaFX & SWT 3
T Null Layout Problem. AWT, Swing, JavaFX & SWT 3
M Layout Problem: Zentriern in Panel AWT, Swing, JavaFX & SWT 3
M Layout-Problem: JTable AWT, Swing, JavaFX & SWT 3
A Layout-Problem AWT, Swing, JavaFX & SWT 5
W SWT, Anordung von Elementen - Layout Problem ? AWT, Swing, JavaFX & SWT 2
I Null-Layout-Problem AWT, Swing, JavaFX & SWT 2
M Problem mit NULL-Layout AWT, Swing, JavaFX & SWT 2
M Problem mit Layout wegen Textarea AWT, Swing, JavaFX & SWT 3
G Layout Problem AWT, Swing, JavaFX & SWT 6
M Layout / setSize Problem AWT, Swing, JavaFX & SWT 15
M Layout Problem (GrudBag- + BorderLayout) AWT, Swing, JavaFX & SWT 6
M Layout-Problem, Größe von Komponenten AWT, Swing, JavaFX & SWT 3
S Wiedermal SWT-Layout-Problem AWT, Swing, JavaFX & SWT 6
S SWT - Simples Layout Problem AWT, Swing, JavaFX & SWT 9
M Layout Problem, Ideen gesucht AWT, Swing, JavaFX & SWT 7
H Problem mit Layout Fenstern (Swing) AWT, Swing, JavaFX & SWT 3
M Layout Problem AWT, Swing, JavaFX & SWT 3
D Layout Problem / JTree und JPanel AWT, Swing, JavaFX & SWT 4
D Layout-Problem AWT, Swing, JavaFX & SWT 8
M Problem mit Layout/JLabel AWT, Swing, JavaFX & SWT 5
D Layout Problem mit Überdeckung AWT, Swing, JavaFX & SWT 6
J Kleines Layout Problem AWT, Swing, JavaFX & SWT 5
S Problem mit dem Layout - 3 JPanel's AWT, Swing, JavaFX & SWT 3
G Layout-Problem AWT, Swing, JavaFX & SWT 4
G Problem mit JDialog-Layout AWT, Swing, JavaFX & SWT 4
F Problem mit Panel-Layout AWT, Swing, JavaFX & SWT 3
M Layout Problem. AWT, Swing, JavaFX & SWT 6
E Problem mit GridBag Layout AWT, Swing, JavaFX & SWT 2
G Layout Problem AWT, Swing, JavaFX & SWT 3
S Welches Java Layout sollte ich verwenden? AWT, Swing, JavaFX & SWT 3
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
melaniemueller Layout wechseln über RadioButtons AWT, Swing, JavaFX & SWT 4
J Swing Hilfe bei Layout AWT, Swing, JavaFX & SWT 2
R Layered Layout AWT, Swing, JavaFX & SWT 1
E showAndWait is not allowed during animation or layout processing Memory FX AWT, Swing, JavaFX & SWT 2
E Swing Layout während der Laufzeit anpassen AWT, Swing, JavaFX & SWT 3
P JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen AWT, Swing, JavaFX & SWT 5
R Layout Manager null und Component wird nicht hinzugefügt AWT, Swing, JavaFX & SWT 3
S Kann javafx.scene.layout.VBoxBuilder nicht importieren AWT, Swing, JavaFX & SWT 3
OSchriever Layout über Radiobuttons ändern AWT, Swing, JavaFX & SWT 4
B Swing Probleme mit dem Layout AWT, Swing, JavaFX & SWT 1
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
I JavaFX - festes Layout AWT, Swing, JavaFX & SWT 1
S JavaFX TableView einzelne Zelle Layout zuweisen AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing Zwei gleichgroße Panels in einem Scrollpane mit Layout AWT, Swing, JavaFX & SWT 9
Neumi5694 Swing Card-Layout, Fokus AWT, Swing, JavaFX & SWT 2
kilopack15 Interface mit Layout verknüpfen AWT, Swing, JavaFX & SWT 2
Y Layout/Ausrichtungsprobleme AWT, Swing, JavaFX & SWT 4
T JavaFX Custom Layout AWT, Swing, JavaFX & SWT 5
A GUI Layout AWT, Swing, JavaFX & SWT 11
A Layout-Manager, JScrollPane, ... Chaos AWT, Swing, JavaFX & SWT 5
L wie Layout-Grid in JXPanel anzeigen? AWT, Swing, JavaFX & SWT 5
L Eigene Component Layout AWT, Swing, JavaFX & SWT 4
Soloeco LayoutManager Wie und welches Layout nutze ich am Besten? AWT, Swing, JavaFX & SWT 13
M LayoutManager Modalen JDialog ein Layout zuweisen AWT, Swing, JavaFX & SWT 3
M LayoutManager Layout reagiert nicht auf Constraints AWT, Swing, JavaFX & SWT 4
IsSchoGuat LayoutManager Layout-Containergrösse AWT, Swing, JavaFX & SWT 4
F GridBag Layout AWT, Swing, JavaFX & SWT 1
Z Absolutes Layout / Kontrolle über Anordnung AWT, Swing, JavaFX & SWT 3
M Mehrere Jpanel in einem JScrollPane (Layout) AWT, Swing, JavaFX & SWT 2
M Layout-Probleme unter Swing AWT, Swing, JavaFX & SWT 5
D LayoutManager GUI skalieren und deren Komponenten mit Grid(Bag)Layout-Manager. AWT, Swing, JavaFX & SWT 5
J ComboBoxModel addElement verändert Layout AWT, Swing, JavaFX & SWT 8
E Probelm mit Layout AWT, Swing, JavaFX & SWT 1
B Hilfe welches Layout brauch ich AWT, Swing, JavaFX & SWT 4
P Tipps für GUI-Layout AWT, Swing, JavaFX & SWT 2
M Passender Layout-Manager AWT, Swing, JavaFX & SWT 3
M LayoutManager Layout zur Laufzeit ändern AWT, Swing, JavaFX & SWT 8
N Swing Zweifarbiges Layout für den Filechooser AWT, Swing, JavaFX & SWT 12
B LayoutManager Card Layout AWT, Swing, JavaFX & SWT 2
E Angehängtes Layout, aber wie? AWT, Swing, JavaFX & SWT 12
1 Eigenes Layout schreiben AWT, Swing, JavaFX & SWT 4
B SWT layout invalidieren in SWT? AWT, Swing, JavaFX & SWT 4
R Welchen Layout Manager/ Wie strukturieren? AWT, Swing, JavaFX & SWT 14
J Layout: oben 20% unten 80% AWT, Swing, JavaFX & SWT 12
T Layout für Listendarstellung AWT, Swing, JavaFX & SWT 3
F LayoutManager Null-Layout unter Linux im TreeCellEditor AWT, Swing, JavaFX & SWT 3
K Eclipse Layout (Gimp Layout, Tiled Layout...) AWT, Swing, JavaFX & SWT 4
C LayoutManager Passendes Layout gesucht AWT, Swing, JavaFX & SWT 2
M Layout funktioniert nicht AWT, Swing, JavaFX & SWT 3
dzim Layout von Panes in JFX2 AWT, Swing, JavaFX & SWT 17
H Layout Idee AWT, Swing, JavaFX & SWT 8
M Swing Dynamisches Layout AWT, Swing, JavaFX & SWT 10
P Swing welchen Layout Manager verwenden AWT, Swing, JavaFX & SWT 9
J LayoutManager Komponentenaustausch zerschießt Layout AWT, Swing, JavaFX & SWT 4
K Gui Layout Frage AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben