我在想是否有办法将这样的样式应用于swt复选框。
我寻找自定义组件,但没有找到任何东西。
谢谢你们
问问题
988 次
2 回答
3
您可以使用以下内容: 使用 SWT 创建自定义按钮
作为起点。在其中,PaintListener
您可以按照您希望的方式绘制按钮。
这是我刚刚尝试过的一个小例子:
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Composite;
public class ImageButton extends Canvas {
private boolean checked = false;
private final ImageButton button = this;
public ImageButton(Composite parent, int style) {
super(parent, style);
this.addPaintListener(new PaintListener() {
@Override
public void paintControl(PaintEvent e) {
if(checked)
{
e.gc.drawImage(Icons.ON, 0, 0);
}
else
{
e.gc.drawImage(Icons.OFF, 0, 0);
}
button.setSize(WIDTH_OF_IMAGE, HEIGHT_OF_IMAGE);
}
});
this.addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(MouseEvent e) {
checked = !checked;
redraw();
}
});
}
}
其中Icons.ON
和Icons.OFF
是两个图像,WIDTH_OF_IMAGE 和 HEIGHT_OF_IMAGE 是您使用的图像的宽度和高度。
于 2012-07-12T17:17:01.773 回答
2
OPAL 小部件库具有这种按钮。
http://code.google.com/a/eclipselabs.org/p/opal/wiki/SwitchButton
于 2012-08-30T10:08:20.467 回答