SWT GridLayout scrollbar machen?

Saliver

Aktives Mitglied
Hallo Java-Gemeinde,

wie ist es möglich ein GridLayout-Composite, welches über das ganze Fenster reicht, "scrollbar" zu machen? Ich benutzte hierfür Java SWT.

Viele Grüße und Danke im Voraus,
Sali
 

Network

Top Contributor
JScrollPane

Java:
JScrollPane sp = new JScrollPane();
sp.getViewport().setView( composite );
jpanel.add( sp );

Ganz wichtig, dein zu scrollendes Objekt (Composite) darf nicht noch woanderst hinzugefügt werden.
Also die Einträge entfernen die dein Composite auf dein Fenster setzen.
 
G

Gast2

Gast
JScrollPane

Java:
JScrollPane sp = new JScrollPane();
sp.getViewport().setView( composite );
jpanel.add( sp );

Ganz wichtig, dein zu scrollendes Objekt (Composite) darf nicht noch woanderst hinzugefügt werden.
Also die Einträge entfernen die dein Composite auf dein Fenster setzen.

SWT kein Swing...


Benutze ein ScrolledComposite und setze in die setContent Methode dein Composite rein...
 

Saliver

Aktives Mitglied
Danke für den Tipp. Habe ich soweit auch gemacht. Aber das ganze funktioniert nur, wenn ich das FillLayout und nicht das GridLayout vrwende.


Siehe:
Code:
package de.nordakademie.rushhour.view;

import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.layout.GridLayout;

import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class ScrolledCompositeTest {

   private Composite composite;
   public static void main(String[] args) {
      ScrolledCompositeTest window = new ScrolledCompositeTest();
      window.open();
   }
   public void open() {
      final Display display = new Display();
      final Shell shell = new Shell();
      shell.setSize(800, 600);
      shell.setLayout(new GridLayout());
      shell.setText("ScrolledComposite Test");
      {
         final ScrolledComposite scrolledComposite = new ScrolledComposite(shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
         {
            composite = new Composite(scrolledComposite, SWT.NONE);
            composite.setBounds(0, 0, 800, 800);
            composite.setBackground(display.getSystemColor(SWT.COLOR_DARK_GREEN));
            scrolledComposite.setContent(composite);
            
         }
      }
//      composite.setSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
      shell.open();
      while (!shell.isDisposed()) {
         if (!display.readAndDispatch())
            display.sleep();
      }
   }
}
 
Zuletzt bearbeitet:

Saliver

Aktives Mitglied
Hallo,

Ich muss das Gridlayout verwenden, weil meine ganze GUI daraf aufbaut.
Nun habe ich probeweise eine Klasse erstellt, die mir diese Composites in einem Gridlayout Scrollbar machen.
Soweit stimmt alles, aber warum werden sie mir nicht angezeigt?


Code:
package de.nordakademie.rushhour.view;

import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;

import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class ScrolledCompositeTest {

   private Composite kindEins;
   private Composite kindZwei;
   public static void main(String[] args) {
      ScrolledCompositeTest window = new ScrolledCompositeTest();
      window.open();
   }
   public void open() {
      final Display display = new Display();
      final Shell shell = new Shell();
     shell.setSize(800, 600);
      shell.setLayout(new FillLayout());
      
      shell.setText("Test");
      {
         ScrolledComposite scrolledComposite = new ScrolledComposite(shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
         {
            

        	 Composite mutterComposite = new Composite(scrolledComposite, SWT.NONE);
        	 mutterComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true,1,1));
        	 mutterComposite.setLayout(new GridLayout(2, true));
        	 mutterComposite.setBackground(display.getSystemColor(SWT.COLOR_DARK_GREEN));
        	    
        	 
        	 
        	 
            kindEins = new Composite(mutterComposite, SWT.NONE);
            GridData gridData1 = new GridData(SWT.FILL, SWT.FILL, false,false, 1, 1);
			gridData1.widthHint = 1024;
			gridData1.heightHint = 69;
			kindEins.setLayoutData(gridData1);        
            kindEins.setBounds(0, 0, 800, 800);
            kindEins.setBackground(display.getSystemColor(SWT.COLOR_DARK_GREEN));
    
   
         
            
            kindZwei = new Composite(mutterComposite, SWT.NONE);
            GridData gridData2 = new GridData(SWT.FILL, SWT.FILL, false,false, 1, 1);
			gridData2.widthHint = 2024;
			gridData2.heightHint = 269;
			kindZwei.setLayoutData(gridData2);        
            kindZwei.setBounds(0, 0, 1200, 1900);
            kindZwei.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
       
            
            
         
         scrolledComposite.setContent(mutterComposite);
         scrolledComposite.setAlwaysShowScrollBars(true);}
      }
//      composite.setSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
      shell.open();
      while (!shell.isDisposed()) {
         if (!display.readAndDispatch())
            display.sleep();
      }
   }
}
 
Zuletzt bearbeitet:

Swoop

Gesperrter Benutzer
Das Composite welches im ScrolledComposite liegt benötigt eine Größe. Diese solltest du berechnen. Eine Alternative dafür ist, comp.setMinSize(width, height) und dann comp.setExpandHorizontal(expand) und comp.setExpandVertical(expand) aber da musste rum probieren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B GridLayout und scrollbar AWT, Swing, JavaFX & SWT 5
M SWT keine Scrollbar bei widgets.List und GridLayout AWT, Swing, JavaFX & SWT 2
E GridLayout auf ScrollPane AWT, Swing, JavaFX & SWT 4
thor_norsk GridLayout AWT, Swing, JavaFX & SWT 11
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
M Swing GridLayout AWT, Swing, JavaFX & SWT 2
D [Swing] Anordnung von Komponenten mit GridLayout Manager AWT, Swing, JavaFX & SWT 13
pkm kryptisches Verhalten bei GridLayout AWT, Swing, JavaFX & SWT 4
K Swing GridLayout - x und y bei Mausklick ausgeben AWT, Swing, JavaFX & SWT 4
S GridLayout SWT: Anordnung Composites nebeneinander AWT, Swing, JavaFX & SWT 2
B GridLayout - wie am besten implementieren AWT, Swing, JavaFX & SWT 3
B GridLayout Basics AWT, Swing, JavaFX & SWT 1
L Eigene JComponent in GridLayout AWT, Swing, JavaFX & SWT 9
fLooojava GridLayout - Frage bezüglich Kachelgröße AWT, Swing, JavaFX & SWT 5
F JPanel "verschmelzen" GridLayout AWT, Swing, JavaFX & SWT 10
M LayoutManager GridLayout funktioniert nicht AWT, Swing, JavaFX & SWT 0
T LayoutManager GridLayout panel.setSize funktioniert nicht AWT, Swing, JavaFX & SWT 1
F Gridlayout AWT, Swing, JavaFX & SWT 6
A JPanel oder GridLayout Größe festsetzten AWT, Swing, JavaFX & SWT 4
X GridLayout JPanel austauschen AWT, Swing, JavaFX & SWT 2
A JFrame Größenänderung mit Maus und GridLayout AWT, Swing, JavaFX & SWT 10
J Button in GridLayout AWT, Swing, JavaFX & SWT 2
C LayoutManager Grafik soll nicht im GridLayout Skalieren AWT, Swing, JavaFX & SWT 3
L LayoutManager GridLayout verschiebt sich AWT, Swing, JavaFX & SWT 6
B GridLayout AWT, Swing, JavaFX & SWT 6
T Spaltengröße einzelner Spalten in Gridlayout festlegen AWT, Swing, JavaFX & SWT 3
Karuka Abstände im GridLayout ändern AWT, Swing, JavaFX & SWT 8
Karuka 2D-Grafik Bilder in GridLayout einfügen AWT, Swing, JavaFX & SWT 7
C Scollpane an dynamisches GridLayout anpassen? AWT, Swing, JavaFX & SWT 3
J Swing Bilder anzeigen in Gridlayout AWT, Swing, JavaFX & SWT 11
C Linien über GridLayout zeichnen AWT, Swing, JavaFX & SWT 3
K Probleme mit Gridlayout AWT, Swing, JavaFX & SWT 4
U Elemente im Panel zentrieren mit GridLayout AWT, Swing, JavaFX & SWT 3
Z Swing JButton erweitern/Gridlayout AWT, Swing, JavaFX & SWT 2
L Swing GridLayout AWT, Swing, JavaFX & SWT 4
lumo LayoutManager SWT GridLayout - Reihenfolge ändern AWT, Swing, JavaFX & SWT 7
C Swing GridLayout: Kann man die Spaltenbreiten variabel gestalten? AWT, Swing, JavaFX & SWT 4
J SWT Größe eines Composite mit Gridlayout festlegen AWT, Swing, JavaFX & SWT 2
Y Kein GantChart in einem GridLayout AWT, Swing, JavaFX & SWT 5
M Formular in GridLayout ? AWT, Swing, JavaFX & SWT 17
R LayoutManager Problem mit GridLayout AWT, Swing, JavaFX & SWT 5
F LayoutManager GridLayout 0/0 auf andere Ecke setzen AWT, Swing, JavaFX & SWT 4
Rudolf Swing Gridlayout und Grouper vorhanden? AWT, Swing, JavaFX & SWT 4
A Gridlayout Vertikal anordnen AWT, Swing, JavaFX & SWT 6
D LayoutManager GridLayout, 2 labels nebeneinander AWT, Swing, JavaFX & SWT 8
B Swing GridLayout.add über 2 Spalten? AWT, Swing, JavaFX & SWT 7
R LayoutManager GridLayout verändert isch andauernd AWT, Swing, JavaFX & SWT 4
A Frage zu GridLayout AWT, Swing, JavaFX & SWT 4
J Swing Bild in GridLayout AWT, Swing, JavaFX & SWT 8
aze GridLayout: Keine automatische Ausdehnung AWT, Swing, JavaFX & SWT 2
M Image an Gridlayout anpassen AWT, Swing, JavaFX & SWT 5
E SWT Problem mit Gridlayout AWT, Swing, JavaFX & SWT 3
G SWT GridLayout AWT, Swing, JavaFX & SWT 2
lumo SWT GridLayout - clear? AWT, Swing, JavaFX & SWT 4
T GridLayout Zeilen Hintergrund AWT, Swing, JavaFX & SWT 5
N Gridlayout macht Probleme AWT, Swing, JavaFX & SWT 3
L GridLayout verändert festgesetzte Größe der Komponenten AWT, Swing, JavaFX & SWT 12
S Gridlayout - Tabellenzeile "beenden" AWT, Swing, JavaFX & SWT 3
Dragonfire GridLayout Probleme AWT, Swing, JavaFX & SWT 4
A JLabel, Icons und GridLayout AWT, Swing, JavaFX & SWT 3
C JPanel-Array in GridLayout AWT, Swing, JavaFX & SWT 4
G SWT GridLayout AWT, Swing, JavaFX & SWT 3
N Gridlayout 2. Spalte füllen AWT, Swing, JavaFX & SWT 4
W Problem mit GridLayout AWT, Swing, JavaFX & SWT 11
K Problem mit nem GridLayout AWT, Swing, JavaFX & SWT 5
T GridLayout, zu wenig Platz zwischen Widgets AWT, Swing, JavaFX & SWT 3
T SWT/Eclipse Form Controls zur Laufzeit hinzufügen,GridLayout AWT, Swing, JavaFX & SWT 4
M GridLayout mit fester Größe möglich? AWT, Swing, JavaFX & SWT 3
E Einfache Frage zu GridLayout AWT, Swing, JavaFX & SWT 35
G Größe der einzelenen Felder im GridLayout einstellbar? AWT, Swing, JavaFX & SWT 5
P Canvas in JFrame mit GridLayout AWT, Swing, JavaFX & SWT 4
F GridLayout: verschiedene Spaltenbreiten AWT, Swing, JavaFX & SWT 2
S GridLayout ? AWT, Swing, JavaFX & SWT 5
D AutoResize bei GridLayout ausschalten? AWT, Swing, JavaFX & SWT 2
D GridLayout mit nur einer Spalte, aber n Zeilen AWT, Swing, JavaFX & SWT 2
E GridLayout seltsame Anordnungsstrategie AWT, Swing, JavaFX & SWT 6
S Problemen mit Canvas-Objekten im GridLayout AWT, Swing, JavaFX & SWT 8
L Grids benennen beim GridLayout AWT, Swing, JavaFX & SWT 5
S GridLayout mit sehr großen Abständen AWT, Swing, JavaFX & SWT 3
I SWT GridLayout AWT, Swing, JavaFX & SWT 5
V Frage zu GridLayout. AWT, Swing, JavaFX & SWT 3
P SWT GridLayout AWT, Swing, JavaFX & SWT 5
O gridlayout konstante größe AWT, Swing, JavaFX & SWT 3
TRunKX Problem mit dem GridLayout und den proportionen AWT, Swing, JavaFX & SWT 4
P SWT: GridLayout und Textfelder AWT, Swing, JavaFX & SWT 1
M GridLayout funktioniert nicht mehr. AWT, Swing, JavaFX & SWT 2
F GridLayout horizontal ausrichten AWT, Swing, JavaFX & SWT 6
K GridLayout: Colspan, Rowspan AWT, Swing, JavaFX & SWT 2
R GridLayout spinnt AWT, Swing, JavaFX & SWT 14
C leeres Element in Gridlayout einfuegen AWT, Swing, JavaFX & SWT 3
D Problem bei GridLayout und JPanels AWT, Swing, JavaFX & SWT 4
J GridLayout AWT, Swing, JavaFX & SWT 5
H GridLayout: Größe einer Komponente ändern AWT, Swing, JavaFX & SWT 2
L Frage zum GridLayout AWT, Swing, JavaFX & SWT 4
G kann man die aufteilung von GridLayout beeinflussen ? AWT, Swing, JavaFX & SWT 10
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

Ähnliche Java Themen

Neue Themen


Oben