swt Composite圆角
时间: 2023-09-09 20:07:25 浏览: 285
要创建带有圆角的 SWT Composite,可以使用 `RoundRectangle` 类来绘制圆角矩形。以下是一个示例代码:
```
public class RoundComposite extends Composite {
private int cornerRadius = 20;
public RoundComposite(Composite parent, int style) {
super(parent, style);
addPaintListener(new PaintListener() {
@Override
public void paintControl(PaintEvent e) {
Rectangle rect = getClientArea();
e.gc.setAntialias(SWT.ON);
e.gc.setBackground(getBackground());
e.gc.fillRoundRectangle(rect.x, rect.y, rect.width, rect.height, cornerRadius, cornerRadius);
}
});
}
public void setCornerRadius(int cornerRadius) {
this.cornerRadius = cornerRadius;
redraw();
}
}
```
在上面的代码中,我们创建了一个 `RoundComposite` 类,它继承自 SWT 的 `Composite` 类。在构造函数中,我们添加了一个 `PaintListener`,并在其中使用 `GC` 对象绘制圆角矩形。`setCornerRadius()` 方法用于设置圆角的半径,并调用 `redraw()` 方法重绘组合框。
使用上述代码创建的圆角组合框可以像下面这样使用:
```
RoundComposite composite = new RoundComposite(shell, SWT.NONE);
composite.setBounds(10, 10, 200, 200);
composite.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
composite.setCornerRadius(30);
```
阅读全文