2017-04-18 114 views
0

這是一個RCP應用程序,您有(a)名稱列表,它是通過FOR循環下載的。RCP應用程序/ SWT標籤BOLD

也就是說,它們是菜單項,並且它們位於屏幕左側並具有其各自的圖層(複合)。

現在,這個工作,困難/這裏需要的是,當你雙擊一個物品它會收到一個「SWT.BOLD」字符,當你點擊另一個物品時,前一個收到SWT.NONE和所選的一個SWT.BOLD。 一個highlighten ....

以下代碼:

for (int i = 0; i < 2; i++) { 
     final Label l1 = neueLabel(shell, "label "+i, i); 
     l1.addMouseListener(new MouseAdapter() { 
      @Override 
      public void mouseDoubleClick(MouseEvent e) { 
       if(e.button==1) 
        l1.setFont(SWTResourceManager.getFont("Segoe UI", 9, 
           SWT.BOLD)); 
      } 
     }); 
    } 

坦克

+0

那麼你的實際問題是什麼?你不知道該怎麼做? –

+0

是Greg!代碼只有一半。也就是說,我點擊一個物品被放大,如果我點擊另一個物品,第一個跟隨BOLD,第二個也跟着。我需要的是當我點擊一個項目時,前一個收到SWT.NONE和當前的SWT BOLD。 – BEN

+0

我該如何解決這個問題? – BEN

回答

0

您需要保存當前突出顯示的標籤,並重置其字體。假設你的班級有private Label current;你的覆蓋方法可能看起來像

if (e.button == 1) { 
    if (current != null) 
     current.setFont(SWTResourceManager.getFont("Segoe UI", 9, SWT.NONE)); 
    l1.setFont(SWTResourceManager.getFont("Segoe UI", 9, SWT.BOLD)); 
    current = l1; 
} 
+0

謝謝Stefan!有效! – BEN

+0

很高興聽到。所以請[當有人回答我的問題時該怎麼辦?](http://stackoverflow.com/help/someone-answers) –