swt中的两个问题,问题在程序源代码中以注释的形式给出了,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/06/17 18:59:07
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.RowData;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Slider;
import org.eclipse.swt.widgets.Text;

public class Slider1 {
static int value=0;
public static void main(String[] args){
Display display=Display.getDefault();
Shell shell=new Shell();
shell.setText("hello");
shell.setBounds(34,54,300,400);
shell.open();
shell.setLayout(new RowLayout());
RowData rd=new RowData(100,30);

final Text text=new Text(shell,SWT.BORDER);
text.setData(rd); //问

// 定义一个键盘监听事件
KeyListener listener = new KeyListener(){
public void keyReleased(KeyEvent e)
{
}

@Override
public void keyPressed(KeyEvent e)
{
int key = e.keyCode;
switch(key)
{
case SWT.ARROW_LEFT:
slider.setSelection(slider.getSelection() - 5); //这里也改了一下
text.setText(String.valueOf(slider.getSelection()));
break;
case SWT.ARROW_RIGHT:
slider.setSelection(slider.getSelection() + 5);
text.setText(String.valueOf(slider.getSelection()));
break;
}

}
};

// 把监听事件 加入到shell中
shell.addKeyListener(listener );

// 加入到text中,在text获得焦点时使用
text.addKeyListener(listener);