내 상황 내가 내 자바 SE SWT 응용 프로그램에서 Text
을 SWT 한 뭐죠 조금 설명하자 하자 사용자가 응용 프로그램을 실행하는 동안 생성 된 Text
뭔가 (String
)를 작성합니다 말한다. USER가 Text
오브젝트/위젯을 클릭하면이 Text
은 (setText("");
) itselves를 지울 것입니다 (이전에 일부 String이 작성된 경우).JAVA : SWT 텍스트 +의 MouseListener
MouseListener
는 3 가지 방법이 있습니다 mouseDown(...)
, mouseUp(..)
, mouseDoubleClick(...)
-> 나는이 경우에만 mouseDown(...)
을 사용해야합니다 - 아무것도 더 밤은 nescesary을.
mouseDown(..)
메서드에서 나는 실제 텍스트 개체 참조의 메서드를 호출해야합니다 : "XY".setText("");
마우스로 클릭 한 텍스트. -> 나는 어떻게 든 얻을 수 없었다.
대체로 MouseListener onMouseClickText
과 같은 형식으로 사용하고 싶습니다. SWT Text
을 내 응용 프로그램에서 사용할 수 있습니다.
아무도 어떻게 이런 일을 할 수 있는지 알고 있지 않습니까? 이상 : 기존 참조를 얻는 방법 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()");
}
};
}
: 왜 마우스 수신기를 사용하고 싶습니까? 텍스트 필드의 Focus 이벤트를 사용하면 더 좋은 방법으로 할 수 있습니다. 자세한 내용은 javadocs를 참조하십시오. 매우 쉬운 방법입니다. –
예, 일반용으로 할 수 있습니까? 그게 뭔지 아십니까? 모든 SWT Text에 대해 일반 Event/Listener를 가지려면 : Event 중복성없이 Text 위젯/객체에 추가 할 수있는 Event 또는 Listener 선언을 하나만 가져야합니다. ?? –