SWT에서 새로운 탭에 포커스를 주는 방법이 있나요?
글쓴이: june / 작성시간: 목, 2007/04/26 - 2:02오후
안녕하세요.
포스팅 하는건 정말 오랜만이네요.
다들 업무에 수고 많으시죠~
다름 아니라, 제가 swt를 쓰고 있는데,
TabFolder에서 여러개의 tab들을 열었을때, 가장 최근 또는 사용자의 입력에 의해서 새로운 탭이 생겼을 때, 그 탭에 Focus가 가도록 하는 방법을 찾고 있는데, 생각보다 잘 안되네요.
혹시 사용한 경험이 있으신분 있으시면 힌트라도 부탁드려요.
class MyButton extends Composite{ public MyButton(final Composite parent) { super(parent,SWT.NONE); Button btn1 = new Button(this,SWT.PUSH); btn1.setSize(20, 20); btn1.setText("btn1"); btn1.addMouseListener( new MouseListener(){ public void mouseDoubleClick(MouseEvent e) { } public void mouseDown(MouseEvent e) { // TODO Auto-generated method stub TabItem item = new TabItem((TabFolder)parent,SWT.NONE); item.setText("새 탭"); } } ); btn1.pack(); pack(); } } public class JFaceTest extends ApplicationWindow { private static TabFolder folder; public JFaceTest() { // TODO Auto-generated constructor stub super(null); } protected Control createContents(Composite parent) { this.getShell().setText("Good son"); this.getShell().setSize(400, 400); folder = new TabFolder(parent, SWT.BORDER); TabItem item = new TabItem(folder,SWT.NONE); MyButton btn1 = new MyButton(folder); item.setText("tab label"); item.setControl(btn1); return parent; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub JFaceTest test = new JFaceTest(); test.setBlockOnOpen(true); test.open(); Display.getCurrent().dispose(); } } <code>
Forums:
public void
이 부분에서 TabItem 을 새로 만든 후에는 탭안에 보일 위젯을 만들어 넣어야 합니다.
그리고 그 위젯에 setFocus() 메소드를 호출하면 될 겁니다.(확인은 안해봤습니다.)
관심 가져주셔서
관심 가져주셔서 감사합니다 ^^
포스팅해주신 대로 했었는데, 제가 원한바대로는 안되네요 ^^;
새탭이 열렸을때, 열린 새탭이 앞으로 나오게 하려고 하거든요, 그런데 위의 방법대로는 원하는데로 동작하지는 않네요.
다른방법을 계속 찾고 있습니다.
즐거운 하루 되세요~
커피는 블랙이나 설탕만..
댓글 달기