Hallo,
wie kann ich einem Composite sagen wie groß es sein soll?
Ich probierte ganz wild mit setBounds rum, klappt aber nicht.
Ich ein Composite mit einem GridLayout(10, false).
In dem GridLayout liegen 100 Composites (10 x 10 Matrix mit Bildern und Labels usw..)
Mein Problem ist, dass die 100 Composites anscheinend willkürlich gros sind. Ich möchte sie aber gerne 50 x 50 Pixel groß haben.
wie kann ich einem Composite sagen wie groß es sein soll?
Ich probierte ganz wild mit setBounds rum, klappt aber nicht.
Ich ein Composite mit einem GridLayout(10, false).
In dem GridLayout liegen 100 Composites (10 x 10 Matrix mit Bildern und Labels usw..)
Mein Problem ist, dass die 100 Composites anscheinend willkürlich gros sind. Ich möchte sie aber gerne 50 x 50 Pixel groß haben.
Code:
Jedes der 100 Composites ist ein Object der Klasse SampleEntry.
public class SampleEntry extends Composite {
private Sample sample;
private Composite parent;
private ScrolledComposite comp;
private Canvas canvas;
private Scale scale;
private Image image;
int width, height;
/**
* The constructor.
*/
public SampleEntry(Composite parent, int Style, Sample sample) {
super(parent, Style);
this.parent = parent;
this.sample = sample;
setBounds(0, 0, 50, 50);
comp = new ScrolledComposite(this, SWT.BORDER | SWT.H_SCROLL
| SWT.V_SCROLL);
comp.setBounds(this.getBounds());
canvas = new Canvas(comp, 0);
setLayout(new GridLayout());
setupComp();
if (sample != null)
setImage();
}
public void setupComp() {
comp.setAlwaysShowScrollBars(false);
comp.setLayoutData(new GridData(GridData.FILL_BOTH));
comp.setContent(canvas);
layout(true);
}
public void setImage() {
image = new SampleMaterialImageDescriptor(sample.getMaterialType())
.getImageDesciptor().createImage();
canvas.setSize(48,48);
canvas.setLocation(0, 0);
canvas.addPaintListener(new PaintListener() {
public void paintControl(PaintEvent e) {
GC gc = e.gc;
width = 48;
height = 48;
gc.drawImage(image, 0, 0, image.getBounds().width, image
.getBounds().height, 0, 0, canvas.getSize().x, canvas
.getSize().y);
}
});
canvas.addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
image.dispose();
}
});
redraw();
}