Morgen,
ich muss mich seit ein Paar Tagen mit SWT auseinandersetzen, soll damit eine neue GUI für ein altsystem bauen, nur kommen ich jetzt nicht mehr weiter. Mein Problem ist wie Oben schon steht, das ich das vertikale Scrollen nicht ausgestellt bekommen. Wenn etwas über die Breite der einen spallte in der Tabelle hinaus gehen sollte soll das einfach nicht gezeigt werden.
Das einzige was ich dazu gefunden habe ist:
sonst habe ich nichts gefunden womit an die bar heran kommt.
Weis einer wie man das macht?
Hier der Code der Tabelle und der shell:
ich muss mich seit ein Paar Tagen mit SWT auseinandersetzen, soll damit eine neue GUI für ein altsystem bauen, nur kommen ich jetzt nicht mehr weiter. Mein Problem ist wie Oben schon steht, das ich das vertikale Scrollen nicht ausgestellt bekommen. Wenn etwas über die Breite der einen spallte in der Tabelle hinaus gehen sollte soll das einfach nicht gezeigt werden.
Das einzige was ich dazu gefunden habe ist:
Code:
TableFieldCompo.getHorizontalBar().setVisible(false); // table ist die Tabelle genaueres unten
sonst habe ich nichts gefunden womit an die bar heran kommt.
Weis einer wie man das macht?
Hier der Code der Tabelle und der shell:
Code:
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
public class Test {
private Display display;
private Shell shell;
private Table table;
private TableColumn tcAspect;
private TableColumn tcprice;
private GridLayout shelllayout;
public TestComposite() {
display = new Display();
shell = new Shell(display);
shell.setText("Test");
shell.setSize(1024, 600);
createGUI();
shell.open();
while (!shell.isDisposed()){
if (!display.readAndDispatch())
display.sleep();
}
}
private void createGUI() {
shelllayout = new GridLayout();
shelllayout.verticalSpacing = 20;
shelllayout.marginHeight = 20;
shelllayout.marginWidth = 20;
shelllayout.numColumns = 3;
shelllayout.makeColumnsEqualWidth = true;
shell.setLayout(shelllayout);
shell.addListener (SWT.Resize, new Listener () {
@Override
public void handleEvent(Event arg0) {
// (gesammt größe Fenster - Abstand - Rand) / 3 - Scrollbereich
int tablewidth = (shell.getClientArea().width
- shelllayout.horizontalSpacing
- 2*shelllayout.marginWidth)/3
- table.getVerticalBar().getSize().x;
int Aspectwidth = tablewidth*2/3-table.getBorderWidth();
int Pricewidth = tablewidth/3-table.getBorderWidth();
tcAspect.setWidth(Aspectwidth);
tcprice.setWidth(Pricewidth);
}
});
GridData data = new GridData();
data.grabExcessHorizontalSpace = true;
data.grabExcessVerticalSpace = true;
data.verticalAlignment = GridData.FILL;
data.horizontalAlignment = GridData.FILL;
// hier ist das erstellen von table, habe ich mal raus gelassen wegen Übersichtlichkeit, ist etwas ausufernd...
Group group = new Group(shell, SWT.VERTICAL);
GridData gridData = new GridData(GridData.FILL_BOTH);
gridData.horizontalSpan = 2;
gridData.verticalSpan = 2;
group.setLayoutData(gridData);
GridLayout gridLayout2 = new GridLayout();
gridLayout2.numColumns = 3;
gridLayout2.marginHeight = 40;
gridLayout2.marginWidth = 50;
group.setLayout(gridLayout2);
GridData gridDatacombo = new GridData(GridData.FILL_BOTH);
gridDatacombo.verticalSpan = 3;
GridLayout gridLayoutcombo = new GridLayout();
gridLayoutcombo.marginWidth = 30;
gridLayoutcombo.numColumns = 1;
Table TableFieldCompo;
for( int i=0; i<9; i++){
TableFieldCompo = new Table(group, SWT.BORDER | SWT.CENTER | SWT.FULL_SELECTION);
TableFieldCompo.setLayoutData(data);
TableFieldCompo.getHorizontalBar().setVisible(false);
}
}
public static void main(String[] args) {
new Test();
}
}