讓我形容一點什麼我的情況,我 SWT已經在我的Java SE SWT應用程序Text
: 讓的說用戶會寫東西(String
)到創建Text
而應用的運行。我想介紹一些MouseListener
,它可以做到這一點: 當USER點擊進入Text
對象/控件時,這個Text
會自己清除(setText("");
)它自己(如果先前寫了一些字符串)。JAVA:SWT文字+的MouseListener
MouseListener
有3種方法:mouseDown(...)
,mouseUp(..)
,mouseDoubleClick(...)
- >我應該在這個情況下,只有mouseDown(...)
使用 - 僅此而已心不是nescesary。
在mouseDown(..)
方法我需要調用實際文本對象引用的方法:"XY".setText("");
被鼠標點擊的文本。 - >我以某種方式無法獲得。
我想以某種方式像它一般MouseListener onMouseClickText
它可以適用於任何SWT Text
我將在我的應用程序中使用。
是否有人知道如何做MouseListener
或更好:如何獲得此參考SWT Text
,MouseListener
?
這裏是示例代碼:
package sk.tokra.example;
//imports here
.
.
import org.eclipse.swt.widgets.Text;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
.
.
public class Application {
//class fields
Text text;
private static final Logger logger = LoggerFactory.getLogger(Application.class);
.
.
.
// main
public static void main(String[] args) {
logger.debug("main(), Starting app!");
try {
Application window = new Application();
window.open();
} catch (Exception e) {
e.printStackTrace();
}
logger.debug("main(), Exiting app!");
return;
}
/**
* Open the window.
*/
public void open() {
logger.debug("open()");
Display display = Display.getDefault();
createContents();
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
/**
* Create contents of the window.
*/
protected void createContents() {
text = new Text(shell, SWT.BORDER);
text.addMouseListener(onMouseClickText);
.
.
.
}
//other stuff/methods/listener part
private MouseListener onMouseClickText = new MouseListener() {
@Override
public void mouseUp(MouseEvent arg0) {
logger.debug("onMouseClickFind, mouseUp()");
}
@Override
public void mouseDown(MouseEvent arg0) {
logger.debug("onMouseClickFind, mouseDown()");
// HERE I WOULD NEED to obtain refence of Text
// then call .setText("");
}
@Override
public void mouseDoubleClick(MouseEvent arg0) {
logger.debug("onMouseClickFind, mouseDoubleClick()");
}
};
}
:爲什麼要使用鼠標偵聽器來做到這一點。您可以通過使用Textfield的Focus事件以更好的方式實現它。查看javadoc的細節。它非常容易這樣。 –
是的,但一般情況下可以這樣做嗎?你知道這是什麼嗎?對於任何SWT文本,要具有一般的事件/監聽器:只有一個事件或監聽器聲明,不管代碼是否重複,都可以添加到任何文本小部件/對象中。 ?? –