안녕하세요.Java FX DB에서 검색 한 이미지의 원을 그리는 방법
내가 클래스라는 visitantes에서 ID로 이미지를 가져 오는 코드가 있습니다
public Image getImageById(String id) throws SQLException, IOException {
try (
ConexionSQL cn = new ConexionSQL();
Connection con = cn.conexion();
PreparedStatement ps = con.prepareStatement(
"SELECT foto_visi FROM visitantes WHERE cedula_visi = ?");
) {
ps.setString(1, id);
ResultSet results = ps.executeQuery();
Image img = null ;
if (results.next()) {
Blob foto = results.getBlob("foto_visi");
InputStream is = foto.getBinaryStream();
img = new Image(is) ; // false = no background loading
is.close();
}
results.close();
return img ;
} catch (Throwable e) {
String info = e.getMessage();
System.out.println(info);
}
return null;
을 그리고 이것은 클래스라는 ver_visitantes의 서비스 :
private final Service<Image> imageRetrievalService = new Service<Image>() {// cargar imagen en visitantes
@Override
protected Task<Image> createTask() {
final String id;
final visitantes visitante = tbvisitantes.getSelectionModel().getSelectedItem();
if (visitante == null) {
id = null;
} else {
id = visitante.getcedula();
}
return new Task<Image>() {
@Override
protected Image call() throws Exception {
if (id == null) {
return null;
}
return visitante.getImageById(id);
}
};
}
};
와 내가 보여 이 방법으로 이미지 :
imgfotovisi.imageProperty().bind(imageRetrievalService.valueProperty());
이 시점에서 작동하지만 문제가 없습니다.
하지만 지금은 은퇴 한 이미지가 원 모양이나 CSS로 필요합니다. 어떻게 그 이미지를 테두리 둘레에 원으로 만들 수 있습니까 ?? 메신저 이런 식으로 triyin :
Image im = imgfotovisi.getImage();
circulo.setFill(new ImagePattern(im));
을하지만 이미지 변수가 null.circulo 것은 내가이 How to set an image in a circle와 helpme을 읽을
... 58 more
Caused by: java.lang.NullPointerException: Image must be non-null.
at javafx.scene.paint.ImagePattern.<init>(ImagePattern.java:235)
.I이
circulo.setFill(imgfotovisi);
같은 몇 가지를 필요로 원 모양입니다 조금 있지만, 예를 들어 이미지가 웹에 있습니다.이 게시물의 다른 글 JavaFX Circle and ImageView 나는 undestand 코드를 캔트 수 없습니다.
나는 내가 완벽 할 것입니다 CSS에서의 가망 circle.If 전체를 원하는, CSS의 모서리 라운드
.image-view {
-fx-effect: dropshadow(three-pass-box, rgba(0,0,0,0.8), 10, 0, 0, 0);
-fx-stroke-width: 2.0;
-fx-border-radius: 20 20 20 20;
-fx-background-radius: 10 10 10 10;
-fx-padding: 10;
-fx-background-color: firebrick;
}
는이를 가지고 있지만. 모든 문제를 이해하고 나를 도울 수 있기를 바랍니다. DB에서 보여지는 이미지에 대한 내 원래 게시물입니다.
는') (당신이 당신이'imgfotovisi.getImage를 호출되어 있습니까 'Task'이 끝나면? –
@mrmcwolf 나는 pr, oblem이 정확히 –
인 것처럼 생각한다. imageview에서 이미지를 볼 수는 있지만, 작업이 완료되면 정확히 알지 못한다. –