有没有办法在SWT中选择标签?或者SWT中是否有其他可选择的小部件可用作标签?我正在制作日历。
答案 0 :(得分:7)
我认为您要选择Label
文字到剪贴板。
您可以使用Text
小部件作为标签,但是当用户点击它时会显示插入符号。
如果你不想要插入符号,那么使用StyledText
并将插入符号设置为null。
示例:
package testplugin;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class SWTHelloWorld {
public static void main (String [] args) {
Display display = new Display ();
Shell shell = new Shell(display);
shell.setLayout(new GridLayout());
Label labelWidget = new Label(shell, SWT.NONE);
labelWidget.setText("Hello");
Text textWidget = new Text(shell, SWT.NONE);
textWidget.setText("Hello");
//Set background color same as its container
textWidget.setBackground(shell.getBackground());
//Make editable false
textWidget.setEditable(false);
StyledText styledTextWidget = new StyledText(shell, SWT.NONE);
styledTextWidget.setText("Hello");
styledTextWidget.setBackground(shell.getBackground());
styledTextWidget.setEditable(false);
//Set caret null this will hide caret
styledTextWidget.setCaret(null);
shell.pack();
shell.open ();
shell.setSize(200, 300);
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) display.sleep ();
}
display.dispose ();
}
}
您可以参考这些链接来监听各种小部件上的鼠标,键盘,焦点等等。