Как в Javafx сделать при выборе элемента listView переход по ссылке в браузер?
Есть список, загружаемый из базы данные. Список состоит из сокращенных ссылок-"ключей", при нажатии на которые пользователь должен переходить по реальным ссылкам, заключенным в "значениях". Не могу найти информации, как в javafx осуществляется именно переход в браузер и строка работает как ссылка...? Подскажите, кто знает, пожалуйста :) Код контроллера прилагаю.
package com.example.diplom_fx2;
import java.io.IOException;
import java.net.URL;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.ListView;
import javafx.scene.control.TextField;
public class LinkController {
@FXML
private ResourceBundle resources;
@FXML
private URL location;
@FXML
private Button btn_add;
ObservableList<String> short_links = FXCollections.observableArrayList();
@FXML
private ListView<String> listLink = new ListView<String>();
@FXML
private TextField long_link;
@FXML
private TextField short_link;
private final DB db = new DB();
Map<String, String> links = new HashMap<>();
ArrayList<String> arrayLink = new ArrayList<>();
@FXML
void initialize() throws SQLException, IOException {
btn_add.setOnAction(event -> {
addLinks();
});
}
private void addLinks() {
String longLink = long_link.getCharacters().toString();
String shortLink = short_link.getCharacters().toString();
long_link.setStyle("-fx-border-color: #fafafa");
short_link.setStyle("-fx-border-color: #fafafa");
if(longLink.length() <= 4 || !longLink.contains(".")){
long_link.setStyle("-fx-border-color: #e06249");
}
else if (shortLink.length() <= 2 ){
short_link.setStyle("-fx-border-color: #e06249");
// else if (db.isExistsUser(login)) {
// btn_add.setText("Введите другой логин");
} else {
db.addLink(longLink, shortLink);
links.put(shortLink, longLink);
if(!short_link.getText().isEmpty() && !long_link.getText().isEmpty()){
listLink.getItems().clear();
for(Map.Entry<String, String> entry : links.entrySet()) {
String short_link = entry.getKey();
String long_link = entry.getValue();
arrayLink.add(short_link);
listLink.getItems().addAll(short_link);
}
}
long_link.setText("");
short_link.setText("");
btn_add.setText("Всё готово :)");
listLink.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observableValue, String s, String t1) {
// Вот сюда нужно,я так понимаю, написать код для перехода по ссылке в браузер через получаемое значение. Будет какой-то метод с переходом по условию ("http://" + longLink)
}
});
}
}
}
}
Источник: Stack Overflow на русском