Horizontal Scrollbar wird ignoriert

may24

Bekanntes Mitglied
Hi zusammen,

ich habe einen JTable mit einer JScrollPane drumherum das wiederum in ein JPanel plaziert wird.
Jedesmal wenn eine Zeile dazu kommt, wird deren Länge berechnet dund die Spaltenbreite entsprechend berechnet. Soweit so gut, nur was ich auch mache, ich bekomme nie einen Horizontalen Scrollbalken wenn's über die maximale Breite der Scrollpane bzw des Panels raus geht...

Java:
public void showGUI()
	{
		jf.setSize(1200,650);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		JPanel tablePanel = new JPanel();
		JPanel buttonPanel = new JPanel(new GridBagLayout());
		
		dtm = new DefaultTableModel(null, tableHeader);
		dtm.addTableModelListener(new TableModelListener() 
		{
		      public void tableChanged(TableModelEvent e) 
		      {
		      }
		});
		
		table = new JTable(dtm);
		table.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
		scrollPane.setPreferredSize(new Dimension (1000,600));
		scrollPane.add(table);
		scrollPane.setViewportView(table);
		tablePanel.add(scrollPane);
                
                jp.add(tablePanel,gbcTable);
		
		jf.add(jp);
		jf.setVisible(true);
	}

public void addToJTable(Object[] line) 
	{
		int tstll = line[6].toString().length()*6;  // set the width to 6 times the amount of char in this cell
		if (stll < tstll )
		{
			stll = tstll;
		}
		table.getColumnModel().getColumn(0).setPreferredWidth(100);
		table.getColumnModel().getColumn(1).setPreferredWidth(100);
		table.getColumnModel().getColumn(2).setPreferredWidth(100);
		table.getColumnModel().getColumn(3).setPreferredWidth(100);
		table.getColumnModel().getColumn(4).setPreferredWidth(120);
		table.getColumnModel().getColumn(5).setPreferredWidth(120);
		
		
		column = table.getColumnModel().getColumn(6);
		column.setPreferredWidth(stll);
		
		dtm.addRow(line);
		
		
	}
 

L-ectron-X

Gesperrter Benutzer
Versuch mal so:
[JAVA=20] //JScrollPane scrollPane = new JScrollPane();
//scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
//scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
//scrollPane.setPreferredSize(new Dimension (1000,600));
//scrollPane.add(table);
//scrollPane.setViewportView(table);
tablePanel.add(new JScrollPane(table));[/code]
 

Michael...

Top Contributor
Die JScrollPane als einzige Komponente noch mal auf ein JPanel (mit FlowLayout) zu stecken macht für mich zunächst mal keinen Sinn. Warum diese nicht direkt mit den GridBagConstraints auf das Panel jp stecken?
Code:
Auch das scrollPane.add(table);
kann man weglassen. Entweder die Table direkt im Konstruktor oder nur mit setViewportView(table) übergeben.

Code:
table.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
Schalte mal das AutoResize der JTable aus. Bin mir nicht sicher ob diese nicht auch die max. Breite auf den sichtbaren Bereich des Viewports beschränkt.
 

may24

Bekanntes Mitglied
OK, das abschalten des Autoresize bringt schon mal den Scrollbalken zu tage.
Eigentlich soll sich die Breite der ersten 6 Spalten nie Ändern sondern nur die 7te. Gibt's da ein Setting das immer auf die Optimale Breite ver-breitert ? Ich hab's ja ein wenig umständlich gemacht ...
 

may24

Bekanntes Mitglied
OK, noch ein letztes. Es mag vielleicht ein wenig OT sein, aber ich habe jetzt den JTable auf ein JPanel gesetzt mit einem BoxLayout.
Soweit passt das auch, nur da ich die Objekte Horizontal ausrichte, stellt sich mir die Frage wie bekomme ich einen gewissen Abstand zur oberen Kante hin - und zwar so das der JTable nicht mit einem emptyBorder versehen wird - das sieht schrecklich aus ...
Problem: jedesmal wenn ich ein RigidArea einfüge, wird die auch "nur" Horizontal angeordnet:

Java:
public void showGUI()
	{
		jf.setSize(1200,650);
		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		JPanel buttonPanel = new JPanel();
		
		dtm = new DefaultTableModel(null, tableHeader);
		dtm.addTableModelListener(new TableModelListener() 
		{
		      public void tableChanged(TableModelEvent e) 
		      {
		      }
		});
		
		table = new JTable(dtm);
		table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
		scrollPane.setPreferredSize(new Dimension (1000,600));
		scrollPane.add(table);
		scrollPane.setViewportView(table);
		jp.add(scrollPane);
		
		BoxLayout boxh = new BoxLayout(jp,BoxLayout.X_AXIS);
		jp.setLayout(boxh);
		jp.add(Box.createRigidArea(new Dimension(5,5)));

		jp.add(tablePanel);
		jp.add(Box.createHorizontalStrut(5));
		
		jp.add(buttonPanel);

		jf.add(jp);
		jf.setVisible(true);
	}

Ach ja, fast hätte ich's vergessen: createVerticalStrut funktioniert nicht. Das verhält sich eher wie ein createHorizontalStrut ...
 
Zuletzt bearbeitet:

bERt0r

Top Contributor
Könntest du dein gewünschtes Ergebnis vielleicht mit einer Skizze kurz illustrierern, ich versteh nämlich nicht wirklich was du meinst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Suche nach einer horizontal aufklappbaren Toolbar AWT, Swing, JavaFX & SWT 1
C Swing Geschachteltes GUI mit BorderLayout - Vertikal & horizontal Verschieben AWT, Swing, JavaFX & SWT 1
Kenan89 Vertikal und horizontal zentrierter Pane in ScrollPane AWT, Swing, JavaFX & SWT 5
B JScrollPane Horizontal klappt nicht. AWT, Swing, JavaFX & SWT 4
Dit_ JDialog nur horizontal vergrößern AWT, Swing, JavaFX & SWT 3
S AWT Wie kann ich Text horizontal exakt positionieren? AWT, Swing, JavaFX & SWT 3
P Swing JScrollPane scrollt nur horizontal AWT, Swing, JavaFX & SWT 2
A JDialog nur horizontal zentriert AWT, Swing, JavaFX & SWT 2
J Problem mit JTextPane & JScrollPane (horizontal) AWT, Swing, JavaFX & SWT 3
DeeDee0815 SWT Label horizontal und vertikal zentrieren AWT, Swing, JavaFX & SWT 7
H JTable in JScrollPane scrollt vertikal, nicht horizontal AWT, Swing, JavaFX & SWT 5
G Problem mit horizontal und vertikal scrollen AWT, Swing, JavaFX & SWT 2
A JTable in ScrollPane scrollt nicht horizontal AWT, Swing, JavaFX & SWT 2
F GridLayout horizontal ausrichten AWT, Swing, JavaFX & SWT 6
M Scrollbar funktioniert nicht AWT, Swing, JavaFX & SWT 10
CptK Ordentlicher Code & Panel ab bestimmter Komponentenzahl scrollbar machen AWT, Swing, JavaFX & SWT 12
ralfb1105 jTextArea Scrollbar hinzufügen - mit Jigloo erstellt AWT, Swing, JavaFX & SWT 7
G Wie Scrollbar einfügen? AWT, Swing, JavaFX & SWT 1
A Swing Panel mit ScrollBar AWT, Swing, JavaFX & SWT 7
M JavaFX TextArea disabled - ScrollBar enabled AWT, Swing, JavaFX & SWT 3
H JavaFX Abstand rechts zur scrollbar AWT, Swing, JavaFX & SWT 1
I Swing Scrollbar AWT, Swing, JavaFX & SWT 2
W Scrollbar in Registerkarte AWT, Swing, JavaFX & SWT 1
M eigene horizontale Scrollbar AWT, Swing, JavaFX & SWT 1
M JTable horizontale scrollbar löschen AWT, Swing, JavaFX & SWT 3
G Scrollbar AWT, Swing, JavaFX & SWT 13
G Scrollbar für das Fenster einfügen AWT, Swing, JavaFX & SWT 3
M Swing JTextArea mit ScrollBar AWT, Swing, JavaFX & SWT 9
A JScrollPane - ScrollBar Buttongröße verändern AWT, Swing, JavaFX & SWT 1
A Scrollbar gestalten AWT, Swing, JavaFX & SWT 2
E JavaFX ScrollBar in TableView bei Column Resize AWT, Swing, JavaFX & SWT 2
T Swing JScrollPane Farbe der Scrollbar AWT, Swing, JavaFX & SWT 3
B Export eines Panel mit ScrollBar AWT, Swing, JavaFX & SWT 4
5 Scrollbar AWT, Swing, JavaFX & SWT 4
M Swing JTextPane + Scrollbar = Fragen AWT, Swing, JavaFX & SWT 15
H Swing JTextPane hat unästhetisches Scrollbar AWT, Swing, JavaFX & SWT 3
M Swing Scrollbar im JFrame (JPanel?) AWT, Swing, JavaFX & SWT 6
W jTable Scrollbar Problem AWT, Swing, JavaFX & SWT 2
A Swing JPanel in JScrollBar scrollbar machen AWT, Swing, JavaFX & SWT 4
M SWT Table disabled und Scrollbar enabled AWT, Swing, JavaFX & SWT 11
P Scrollbar JTextArea AWT, Swing, JavaFX & SWT 23
S SWT GridLayout scrollbar machen? AWT, Swing, JavaFX & SWT 7
0 2D-Grafik Screenshot von ScrollBar-Inhalt AWT, Swing, JavaFX & SWT 2
D JList Scrollbar machen geht nicht AWT, Swing, JavaFX & SWT 4
D Scrollbar für Tabelle AWT, Swing, JavaFX & SWT 2
J Beliebtes Problem: Scrollbar in JTextArea AWT, Swing, JavaFX & SWT 4
S SWT ScrollBar Bug AWT, Swing, JavaFX & SWT 5
B GridLayout und scrollbar AWT, Swing, JavaFX & SWT 5
L Scrollbar übermalt AWT, Swing, JavaFX & SWT 2
H JList in JScrollPane -> ScrollBar ans Ende setzen AWT, Swing, JavaFX & SWT 5
M SWT keine Scrollbar bei widgets.List und GridLayout AWT, Swing, JavaFX & SWT 2
N Swing JTable Überschrift ohen scrollbar? AWT, Swing, JavaFX & SWT 2
R Scrollbar nur ohne STRG AWT, Swing, JavaFX & SWT 4
D Swing Spaltenköpfe verschieben sich nicht mit, wenn man an horizontaler Scrollbar zieht AWT, Swing, JavaFX & SWT 9
A SWT Table hat keine Scrollbar AWT, Swing, JavaFX & SWT 12
P JTextbox mit Scrollbar AWT, Swing, JavaFX & SWT 6
Roumeo Swing jTable mit Scrollbar AWT, Swing, JavaFX & SWT 13
D Swing [Erledigt]Panel mit ScrollBar , anpassbare Größe AWT, Swing, JavaFX & SWT 15
velocity Swing JList Scrollbar passt sich an AWT, Swing, JavaFX & SWT 4
S Scrollbar in einem JTabbedPane AWT, Swing, JavaFX & SWT 4
slawaweis JXTreeTable, jede Spalte einzeln scrollbar machen? AWT, Swing, JavaFX & SWT 2
Spot84 scrollbar die linksbündig angezeigt wird nur anzeigen wenn sie gebraucht wird AWT, Swing, JavaFX & SWT 5
K Größe einer Scrollbar im Dialogfenster ändern AWT, Swing, JavaFX & SWT 2
S Seltsam: SWT Table zeigt keine Scrollbar an AWT, Swing, JavaFX & SWT 12
T JList ScrollBar AWT, Swing, JavaFX & SWT 2
T ScrollBar aus ScrollPane verstecken AWT, Swing, JavaFX & SWT 2
J JList ohne vertikale Scrollbar AWT, Swing, JavaFX & SWT 3
M Scrollbar anpassen (Position) AWT, Swing, JavaFX & SWT 6
T Scrollbar wird nicht angezeigt - aber warum? AWT, Swing, JavaFX & SWT 3
O ScrollBar.setValue(int value); ? AWT, Swing, JavaFX & SWT 3
A JTable Header + ScrollBar AWT, Swing, JavaFX & SWT 4
N eine Zeichnung scrollbar machen AWT, Swing, JavaFX & SWT 4
DeeDee0815 JDesktopPane scrollbar AWT, Swing, JavaFX & SWT 2
ModellbahnerTT Problem mit Scrollbar AWT, Swing, JavaFX & SWT 10
S JTextArea soll mit Scrollbar ausgestattet sein AWT, Swing, JavaFX & SWT 4
Tom299 JScrollPane(JTextArea) Scrollbar soll am Anfang stehen AWT, Swing, JavaFX & SWT 2
S ScrollBar, bitte helft mir! AWT, Swing, JavaFX & SWT 9
G ScrollBar mit Frame verbinden? AWT, Swing, JavaFX & SWT 8
G Scrollbar hinzufügen AWT, Swing, JavaFX & SWT 10
C Grafikkomponente und Scrollbar AWT, Swing, JavaFX & SWT 5
N Scrollbar zu einem Dialog hinzufügen AWT, Swing, JavaFX & SWT 4
M Scrollbar AWT, Swing, JavaFX & SWT 4
L scrollbar von rot nach greun AWT, Swing, JavaFX & SWT 2
L Mehrere Scrollbar objekte miteinander verbinden AWT, Swing, JavaFX & SWT 3
G Wieso wird meine Scrollbar nicht angezeigt? AWT, Swing, JavaFX & SWT 3
M Scrollbar AWT, Swing, JavaFX & SWT 1
W Rat zur GUI - Scrollbar (SWT) AWT, Swing, JavaFX & SWT 2
A SWT: Group Scrollbar machen. AWT, Swing, JavaFX & SWT 5
G Scrollbar größe regeln AWT, Swing, JavaFX & SWT 18
A vertikale Scrollbar AWT, Swing, JavaFX & SWT 6
lhein Breite der Scrollbar in einer Combobox ändern AWT, Swing, JavaFX & SWT 5
K Mouse Events der Scrollbar/pane AWT, Swing, JavaFX & SWT 2
S JTextArea mit Scrollbar,append Text mit Fokus? AWT, Swing, JavaFX & SWT 5
A Update von Frameinhalt und Scrollbar AWT, Swing, JavaFX & SWT 11
M JTextPane mit ScrollBar AWT, Swing, JavaFX & SWT 5
K Scrollbar funzt net :-/ AWT, Swing, JavaFX & SWT 4
T JScrollPane Scrollbar-Position AWT, Swing, JavaFX & SWT 2
R JScrollPane die ScrollBar manipulieren ? AWT, Swing, JavaFX & SWT 3
S keine ScrollBar AWT, Swing, JavaFX & SWT 15
lin Startposition einer ScrollBar AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben