Làm cách nào để tạo siêu kết nối trong Hộp thoại JFace khi nhấp vào mở liên kết trong trình duyệt web mặc định. Một ví dụ đầy đủ sẽ hữu ích. Tôi biết có một gói org.eclipse.jface.text.hyperlink
nhưng tôi không thể tìm thấy một ví dụ phù hợp.Làm cách nào để thêm siêu kết nối vào Hộp thoại JFace
12
A
Trả lời
20
Bạn có đang chạy ứng dụng RCP không?
Nếu vậy, thì đoạn mã sau sẽ mở liên kết của bạn trong trình duyệt OS mặc định:
// 'parent' is assumed to be an SWT composite
Link link = new Link(parent, SWT.NONE);
String message = "This is a link to <a href=\"www.google.com\">Google</a>";
link.setText(message);
link.setSize(400, 100);
link.addSelectionListener(new SelectionAdapter(){
@Override
public void widgetSelected(SelectionEvent e) {
System.out.println("You have selected: "+e.text);
try {
// Open default external browser
PlatformUI.getWorkbench().getBrowserSupport().getExternalBrowser().openURL(new URL(e.text));
}
catch (PartInitException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
catch (MalformedURLException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
}
});
Ở trên giả định rằng bạn không muốn để quét văn bản hiện hành đối với các hyperlink mà chỉ đơn giản muốn tạo một lập trình. Nếu trước đây là bắt buộc thì bạn sẽ cần phải sử dụng API từ các gói văn bản JFace hoặc tương tự.
Phần yêu cầu RCP là gì? 'PlatformUI.getWorkbench() ...'? – Mot
hoàn hảo! có Tôi cần nó cho một ứng dụng RCP vì vậy điều này đã làm các trick độc đáo :) – Alb
mklhmm: Có, các PlatformUI.getWorkbench() cuộc gọi yêu cầu gói org.eclipse.ui là một phần của RCP SDK. Tôi mừng vì điều này đã giúp ích cho bạn Alb. – tbone