SWT Table hat keine Scrollbar

Status
Nicht offen für weitere Antworten.

Aldimann

Bekanntes Mitglied
Hi zusammen,

ich hab keinen Table, der mehr Informationen enthält, als er aufeinmal anzeigen kann. Somit sollte eigentlich eine Scrollbar erschreinen, was allerdings nicht passiert :(.

Ich hatte auf der darüberliegenden Komponente sowohl Grid- als auch ein Filllayout probiert, bei beidem blieb der gewünschte Erfolg aus.

Hat jemand ne Idee woran das liegen kann?

Gruß
 
B

Beni

Gast
Die korrekten Styles (SWT.H_SCROLL | SWT.V_SCROLL) sind gesetzt? Und die darueberliegende Komponente selbst waechst nicht selbst?

[Edit: oder du verwendest nicht SWT, das koennte auch sein....]
 
Zuletzt bearbeitet von einem Moderator:

Aldimann

Bekanntes Mitglied
Die korrekten Styles (SWT.H_SCROLL | SWT.V_SCROLL) sind gesetzt? Und die darueberliegende Komponente selbst waechst nicht selbst?

[Edit: oder du verwendest nicht SWT, das koennte auch sein....]

SWT.H_SCROLL und SWT.V_SCROLL waren nicht gesetz, sind es aber jetzt und es Funktioniert nicht :/.
Die Komponente liegt mit zwischenebenen auf einem PluginFenster für Eclipse und kann somit nur begrenzt wachsen, bei SWT.FILL scheint er da den kompletten Platz zu nutzen.

Zugrunde liegt dem ganzen folgendes Beispiel:
KLICK

Das Beispiel funktioniert so bei mir (Scrollbar wird angezeigt).

Code zum erstellen des Tables:

Java:
import org.eclipse.swt.widgets.Table;

Table table = new Table(comp, SWT.H_SCROLL | SWT.V_SCROLL);

Sollte also auch passen?!


Hast du die Tabelle in eine JScrollPane eingebettet?

Verstehe nicht, was ein JScrollPanel bei einer SWT Komponente soll? Ist das nicht eine SWING Komponente?
 

Nud3l

Gesperrter Benutzer
hmm ich würde die Tabele

in ein extra ScrolledComposite rein basteln mit irgend welchen srollbar hinzu fügen usw habe ich nur Problem gehabt

so sollte das denn irgendwie aussehen
Code:
sc = new ScrolledComposite(compeditor, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    sc.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));

Table table = new Table(sc,SWT.NONE);
 
G

Gast2

Gast
hmm ich würde die Tabele

in ein extra ScrolledComposite rein basteln mit irgend welchen srollbar hinzu fügen usw habe ich nur Problem gehabt

so sollte das denn irgendwie aussehen
Code:
sc = new ScrolledComposite(compeditor, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    sc.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));

Table table = new Table(sc,SWT.NONE);

Würde ich nicht machen


Klappt doch wunderbar

Java:
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
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;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;

public class SWTTest {

  public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());
    GridLayout gridLayout = new GridLayout();
    Composite composite = new Composite(shell, SWT.FULL_SELECTION);
    composite.setLayout(gridLayout);
    Table table = new Table(composite,  SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    table.setLinesVisible(true);
    table.setHeaderVisible(true);
    table.setLayoutData(new GridData(SWT.FILL, SWT.FILL,true,true));
    String[] titles = { " ", "C", "!", "Description", "Resource",
        "In Folder", "Location" };
    for (int i = 0; i < titles.length; i++) {
      TableColumn column = new TableColumn(table, SWT.NONE);
      column.setText(titles[i]);
      column.pack();
    }
    int count = 40;
    for (int i = 0; i < count; i++) {
      TableItem item = new TableItem(table, SWT.NONE);
      item.setText(0, "x");
      item.setText(1, "y");
      item.setText(2, "!");
      item.setText(3, "this stuff behaves the way I expect");
      item.setText(4, "almost everywhere");
      item.setText(5, "some.folder");
      item.setText(6, "line " + i + " in nowhere");
    }
   
    composite.pack();
    shell.setSize(new Point(200,200));
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())
        display.sleep();
    }
    display.dispose();
  }
}
 

Aldimann

Bekanntes Mitglied
Bei anderen Quelltexten gehts ja auch, nur bei meinem nicht:D.

Hab jetzt mal den meiner Meinung nach entscheidenen Teil zusammen kopiert:

Java:
		Set<String> buttonTexts = new TreeSet<String>(new Comparator<String>(){

			public int compare(String o1, String o2) {
				return o1.compareTo(o2);
			}
			
		});

	buttonTexts.addAll(fileMap.keySet());
	
	Table table = new Table(comp, SWT.H_SCROLL | SWT.V_SCROLL);
	table.setHeaderVisible(false);
	table.setLinesVisible(true);
	
	for(int i =0;i<4;i++){
		TableColumn col = new TableColumn(table, SWT.NONE);
		
		for (String text : buttonTexts) {
			
			
			TableItem item = new TableItem(table, SWT.NONE);
			
			TableEditor tableeditor = new TableEditor(table);
			
			Button button = new Button(table, SWT.CHECK);
			button.setText(text);
			button.pack();
			
			tableeditor.minimumWidth = button.getSize().x;
			tableeditor.horizontalAlignment= SWT.LEFT;
			tableeditor.setEditor(button, item, i);
			
			button.setBackground(table.getBackground());
			
			col.setWidth(button.getSize().x);
			table.pack();
			
			buttons.add(button);
			
		}
		}
    
	}

Evtl hilft das ja bei der Fehler Findung :/.

Den ScrolledComposite hatte ich auch ausprobiert, Erfolg blieb leider aus.
 
G

Gast2

Gast
Vielleicht brauch deine Tabelle noch gar keine Scrollpane die wird erst angezeigt wenn sie benötigt wird...
wenn nicht KSKB...
 

Aldimann

Bekanntes Mitglied
export.jpg

Wie man sieht gehts da noch weiter, aber eben nix zum scrollen da :( ...


Hab jetzt meinen Code mal bissl so gemacht das er Ausführbar ist und die Scrollbars trotzdem nicht angezeigt werden:

Java:
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;

import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.custom.TableEditor;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;


public class test {
public static void main(String[] args) {
	new test();
}

public test() {
	Display display = new Display();
	Shell shell = new Shell(display);
	shell.setLayout(new FillLayout());
	
	ScrolledComposite composite = new ScrolledComposite(shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
	composite.setLayout(new FillLayout());
	
	table(composite);
	
	   shell.pack();
	    shell.open();
	    while (!shell.isDisposed()) {
	      if (!display.readAndDispatch())
	        display.sleep();
	    }
	    display.dispose();
	  }




private void table(Composite comp){
	List<Button> buttons = new ArrayList<Button>();
	Map<String, String> fileMap = new HashMap<String, String>();
	
	for(int i=0;i <100; i++){
		fileMap.put("ButtonNo"+i, "nix");
	}
	
    Set<String> buttonTexts = new TreeSet<String>(new Comparator<String>(){
    	 
        public int compare(String o1, String o2) {
            return o1.compareTo(o2);
        }
        
    });

buttonTexts.addAll(fileMap.keySet());

Table table = new Table(comp, SWT.H_SCROLL | SWT.V_SCROLL);
table.setHeaderVisible(false);
table.setLinesVisible(true);

for(int i =0;i<4;i++){
	
    TableColumn col = new TableColumn(table, SWT.NONE);
    
    for (String text : buttonTexts) {
        
        
        TableItem item = new TableItem(table, SWT.NONE);
        
        TableEditor tableeditor = new TableEditor(table);
        
        Button button = new Button(table, SWT.CHECK);
        button.setText(text);
        button.pack();
        
        tableeditor.minimumWidth = button.getSize().x;
        tableeditor.horizontalAlignment= SWT.LEFT;
        tableeditor.setEditor(button, item, i);
        
        button.setBackground(table.getBackground());
        
        col.setWidth(button.getSize().x);
        table.pack();
        
        buttons.add(button);
        
    }
    }


}
}
 
Zuletzt bearbeitet:
G

Gast2

Gast
Klassen schreibt man GROß
mach ne normale Composite drauß und schon tuts
Java:
        Display display = new Display();
        Shell shell = new Shell(display);
        shell.setLayout(new FillLayout());

        Composite composite = new Composite(shell, SWT.BORDER);
        composite.setLayout(new FillLayout());

        table(composite);

        shell.pack();
        shell.open();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
        display.dispose();
 

Aldimann

Bekanntes Mitglied
Alles klar gelöst!

Problem war wie schon von SirWayne ein normaler Composite, außerdem hatte ich aber noch ein GridLayout, damit gab es anscheinend Probleme.

Habe jetzt ein FillLayout und es funktioniert.

Ja sorry wegen dem Klassennamen, das war grad nur so auf die schnelle :p ...

Vielen dank nochmal...

Btw wie setzte ich noch gleich den Thread auf erledigt?
 
H

HoffiMuc

Gast
for me the last (colored/bold) line of this code snippet that I found did the magic:


Code:
    // parent code her ...
    {
         final ScrolledComposite scrolledComposite = new ScrolledComposite(shell, SWT.BORDER | SWT.V_SCROLL);
         {
              composite = new Composite(scrolledComposite, SWT.NONE);
              composite.setBounds(0, 0, 300, 200);
              composite.setBackground(ResourceManager.getColor(SWT.COLOR_CYAN));
              scrolledComposite.setContent(composite);
              {
                 final Button button = new Button(composite, SWT.NONE);
                 button.setBounds(150, 115, 60, 35);
                 button.setText("button");
              }
         }
    }
    // and AFTER! everything had been set, we do a:
    composite.setSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Seltsam: SWT Table zeigt keine Scrollbar an AWT, Swing, JavaFX & SWT 12
C Default table model aktualisieren AWT, Swing, JavaFX & SWT 7
J Anbindung Textfeldklasse an Table funktioniert nicht AWT, Swing, JavaFX & SWT 3
A JavaFX Daten in eine HTML-Table mit JS schreiben AWT, Swing, JavaFX & SWT 3
S JavaFX Boolean ändern Table View AWT, Swing, JavaFX & SWT 14
B JavaFX JavaFX Table gespeichertes Wert auswählen/anvisieren AWT, Swing, JavaFX & SWT 3
C TableModel zugehörige Table ermitteln AWT, Swing, JavaFX & SWT 3
T Table Renderer AWT, Swing, JavaFX & SWT 2
T Default Table wird nicht angezeigt AWT, Swing, JavaFX & SWT 15
E JavaFX Von der Table-Cell zur Row AWT, Swing, JavaFX & SWT 0
A JavaFX Table Delete Row AWT, Swing, JavaFX & SWT 5
N JavaFX Problem mit table multiple selection AWT, Swing, JavaFX & SWT 5
D JavaFX Table Filter AWT, Swing, JavaFX & SWT 4
R Swing JTable : Header der Spalten ergänzen mit caption (wie bei html-table) AWT, Swing, JavaFX & SWT 2
I JTable: Doppelklick auf Table soll neues Fenster öffnen und Daten aus JTable anzeigen AWT, Swing, JavaFX & SWT 4
J JTabbedPane: table in new tab: tooltip benutzt die column-widths von table in erstem geöffneten tab AWT, Swing, JavaFX & SWT 17
G Border der Komponente bei Table CellRenderer überschreiben AWT, Swing, JavaFX & SWT 0
M MouseListener auf table oder scrollPane AWT, Swing, JavaFX & SWT 11
T SWT checkbox in table AWT, Swing, JavaFX & SWT 6
C JTable Drag and Drop von Zeilen innerhalb einer Table AWT, Swing, JavaFX & SWT 2
Z JavaFX Table mit MenuButton AWT, Swing, JavaFX & SWT 6
T SWT Table (mit Spinner Spalte) Daten auslesen AWT, Swing, JavaFX & SWT 4
E extended Swing Table AWT, Swing, JavaFX & SWT 2
J Einträge aus Table löschen ohne Exception AWT, Swing, JavaFX & SWT 6
T Table-Zeilen mit Thread einfärben AWT, Swing, JavaFX & SWT 15
E SWT Popupmenu auf der Überschrift eines swt.widgets.Table verhindern? AWT, Swing, JavaFX & SWT 3
Nicklas2751 Table View zeigt keinen Inhalt nur leere Zeilen AWT, Swing, JavaFX & SWT 2
reibi SWT SWT - Table AWT, Swing, JavaFX & SWT 8
A Swing JButton in einer Table Cell AWT, Swing, JavaFX & SWT 9
lumo SWT JFace Databinding +Custom Table AWT, Swing, JavaFX & SWT 2
M SWT - Table deselecten AWT, Swing, JavaFX & SWT 2
R SWT | Table | Zeilenkopf AWT, Swing, JavaFX & SWT 2
M SWT Table disabled und Scrollbar enabled AWT, Swing, JavaFX & SWT 11
C [SWT] Widget Table verliert nach Sortierung farbige / eingefärbter Background / Zellen AWT, Swing, JavaFX & SWT 3
L Inhalt einer table löschen AWT, Swing, JavaFX & SWT 2
L Jbutton in table AWT, Swing, JavaFX & SWT 2
lumo SWT Table Selection Color +Focus Out AWT, Swing, JavaFX & SWT 14
S SWT Maximum an Items in Table? AWT, Swing, JavaFX & SWT 2
F SWT table refresh per Thread AWT, Swing, JavaFX & SWT 2
Q SWT Mindetsgröße für Table AWT, Swing, JavaFX & SWT 7
1 Swing manual resize table column to min size AWT, Swing, JavaFX & SWT 2
hdi SWT SWT Table: 2 kleine Probleme AWT, Swing, JavaFX & SWT 4
S SWT Table Größen verändern AWT, Swing, JavaFX & SWT 10
lumo SWT Table und Klassen AWT, Swing, JavaFX & SWT 14
lumo SWT Table CellEditor - knifflig AWT, Swing, JavaFX & SWT 35
M SWT Table mit Columns und Items AWT, Swing, JavaFX & SWT 3
L Java Table AWT, Swing, JavaFX & SWT 4
F Swing J(X)Table Spalten umsortieren NUR im View (Wie finde ich eine Spalte nach Name?) AWT, Swing, JavaFX & SWT 3
A SWT Table mit Bildern und Checkboxes AWT, Swing, JavaFX & SWT 4
A SWT Table clearAll() und zurücksetzen. AWT, Swing, JavaFX & SWT 3
K SWT Table Modell / Datenmodell AWT, Swing, JavaFX & SWT 14
S Table oder TableModel so ueberschreiben, dass Columns minimale Breite haben? AWT, Swing, JavaFX & SWT 2
T SWT - Table Events AWT, Swing, JavaFX & SWT 3
B SWT - Drag & Drop innerhalb einer Table AWT, Swing, JavaFX & SWT 3
T Fokus auf CB in Table mit beliebiger Taste AWT, Swing, JavaFX & SWT 12
S swt table mit checkboxen: wie nachträglich im code setzen? AWT, Swing, JavaFX & SWT 6
G SWT-Table sortieren AWT, Swing, JavaFX & SWT 12
T Input-Check bei Textfeldern in Table AWT, Swing, JavaFX & SWT 5
G SWT Table Controll AWT, Swing, JavaFX & SWT 7
L SWT-Table: Datum ausgeben? AWT, Swing, JavaFX & SWT 5
G Table in SWT AWT, Swing, JavaFX & SWT 2
S Table Row per Drag and Drop in andere Table schieben? AWT, Swing, JavaFX & SWT 14
S SWT Table - Wie Columns hinzufügen / entfernen AWT, Swing, JavaFX & SWT 3
K javax.swing.table.TableRowSorter AWT, Swing, JavaFX & SWT 13
I JComboBox in Table AWT, Swing, JavaFX & SWT 4
G wo wird die table mit daten gefüllt? oô AWT, Swing, JavaFX & SWT 4
S SWT Drag&Drop / Table AWT, Swing, JavaFX & SWT 9
E JTable-während der Einfügezeit der Zellen in die Table AWT, Swing, JavaFX & SWT 2
S table - combobox AWT, Swing, JavaFX & SWT 7
D Selection SWT Table AWT, Swing, JavaFX & SWT 5
D SWT Table AWT, Swing, JavaFX & SWT 5
P Table Layout remove()? AWT, Swing, JavaFX & SWT 2
W Zeile in Table (SWT) selektieren und auslesen AWT, Swing, JavaFX & SWT 4
G Dringend ! SWT-Table übernimmt Änderung nicht AWT, Swing, JavaFX & SWT 2
L Multiline Table AWT, Swing, JavaFX & SWT 3
R SWT: Icons im Table vor den Einträgen AWT, Swing, JavaFX & SWT 3
T mit rechter maustaste Table row selektieren AWT, Swing, JavaFX & SWT 2
F Zeilenhöhe bei SWT Table AWT, Swing, JavaFX & SWT 3
S Nochmal Spaltenbriete im Table AWT, Swing, JavaFX & SWT 2
G mal wieder table. AWT, Swing, JavaFX & SWT 3
V SWT Table mit SWT.CHECK AWT, Swing, JavaFX & SWT 2
P SWT table updaten AWT, Swing, JavaFX & SWT 7
S Frage zu Table(Column)Model AWT, Swing, JavaFX & SWT 3
J ScrollPanel mit 2 Table`s AWT, Swing, JavaFX & SWT 5
J Table Model AWT, Swing, JavaFX & SWT 2
J Abstract Table Model AWT, Swing, JavaFX & SWT 7
T in einer Table soll jede zweite Zeile markiert werden AWT, Swing, JavaFX & SWT 3
E Inhalt einer Zelle eine Table in ein TextField bekommen AWT, Swing, JavaFX & SWT 24
ExceptionOfExpectation JMenu, setMnemonic(Char k) bringt keine Wirkung AWT, Swing, JavaFX & SWT 8
V JavaFX Bild leer und keine Fehlermeldung AWT, Swing, JavaFX & SWT 21
S JavaFX WebView zeigt keine Animation AWT, Swing, JavaFX & SWT 5
ruutaiokwu SWT "Google Window Builder" tut keine jar's ins Projekt rein bei SWT-Projekt AWT, Swing, JavaFX & SWT 22
H String teilen, damit bei JLabel keine Punkte am Ende angezeigt werden AWT, Swing, JavaFX & SWT 4
L Java FX Keine Anzeige Im Tableview AWT, Swing, JavaFX & SWT 4
richis-fragen JTree +/- verschwidet wenn Knoten keine Kinder hat... AWT, Swing, JavaFX & SWT 6
S java.fxml.load.exception und keine automatische Aktualliseriung der Mainausgabe AWT, Swing, JavaFX & SWT 5
F JList zeigt keine Einträge mehr AWT, Swing, JavaFX & SWT 1
G Swing JButton - Keine Klickanimation AWT, Swing, JavaFX & SWT 4
G JavaFX - Während AudioRecording keine Text eingabe TextField möglich AWT, Swing, JavaFX & SWT 6
N Swing JFormattedTextField keine Werte nach Formatzuweisung AWT, Swing, JavaFX & SWT 0

Ähnliche Java Themen

Neue Themen


Oben