我如何从javafx image/imageview类中获取byte []?我想将我的图像作为Blob存储到我的数据库中.这是我用它的方法
public PreparedStatement prepareQuery(HSQLDBConnector connector) {
try {
Blob logoBlob = connector.connection.createBlob();
logoBlob.setBytes(0,logo.getImage());//stuck here
for (int i = 0, a = 1; i < data.length; i++, a++) {
connector.prepStatCreateProfile.setString(a, data[i]);
}
//store LOB
connector.prepStatCreateProfile.setBlob(11, logoBlob);
} catch (SQLException ex) {
ex.printStackTrace();
}
return connector.prepStatCreateProfile;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法从我当前的对象(imageview),图像转换为byte [] ?,或者shoud我开始考虑使用其他类作为我的图像/或者指向参考位置并使用路径/网址?
所以我使用shutdownhook进行清理,因为它并不总是保证shutdownhooks线程执行,我应该把这个代码推送到每次关闭我的应用程序时执行的JavaFX应用程序线程(方法stop())吗?如果没有关闭代码运行它基本上只是关闭套接字并且如果没有被杀死则杀死进程并不昂贵.
使用Application.stop()来清理ShutdownHook是一种好习惯吗?
来自doc的引用:
应用程序停止时会调用此方法,并为应用程序退出和销毁资源提供方便的位置.Application类提供的此方法的实现不执行任何操作.
注意:此方法在JavaFX应用程序线程上调用.
此方法仅用于清理UI的资源吗?到目前为止,我根本没有看到使用shutdownhook over stop()的原因.
我想知道lambdas在Java 8中有多大的好处.我同意有时使用lambdas可能更具可读性,但是它对性能方面有多大影响吗?或者主要是作为语法糖?我有时喜欢匿名的内部课程; 当我不经常使用lambda时,我真的会失去很多好处吗?
唯一的?大?在我看来,性能增益是我们实际上并没有创建类加载器必须在程序开始时加载的类 - 例如创建许多线程:
Thread t = new Thread(new Runnable() {
public.....
});
Run Code Online (Sandbox Code Playgroud)
创建类似的类Sample$1.class.
除此之外,除了代码的可读性或可维护性等之外,还有任何性能或其他隐藏的收益吗?隐藏在JVM的某个地方?我已经看到了类似的问题,但大多数都集中在视觉方面; 我对此不感兴趣.在观看使用Venkat Subramaniam的Java 8 Lambdas Hacking之后,问题出于好奇.
我想要做的是,从我的 spring-boot 应用程序连接到 Docker 中的 mysql 数据库。每个都在自己的容器中。
但我一定是出了什么问题,因为我做不到。
为简单起见:
应用程序属性:
# URL for the mysql db
spring.datasource.url=jdbc:mysql://workaround-mysql:3308/workaround?serverTimezone=UTC&max_allowed_packet=15728640
# User name in mysql
spring.datasource.username=springuser
# Password for mysql
spring.datasource.password=admin
#Port at which application runs
server.port=8080
Run Code Online (Sandbox Code Playgroud)
MySQL 的 docker-compose:
version: '3'
services:
workaround-mysql:
container_name: workaround-mysql
image: mysql
environment:
MYSQL_DATABASE: workaround
MYSQL_USER: springuser
MYSQL_PASSWORD: admin
MYSQL_ROOT_PASSWORD: admin
MYSQL_ROOT_HOST: '%'
ports:
- "3308:3306"
restart: always
Run Code Online (Sandbox Code Playgroud)
很简单吧?我从数据库开始docker-compose up:
到目前为止,一切似乎都运行良好。
现在我已经启动了数据库,对于应用程序,这是它的docker-compose.yml:
version: '3'
services:
workaround:
restart: always
# will build ./docker/workaround/Dockerfile
build: …Run Code Online (Sandbox Code Playgroud) 我试图让我的切换按钮在组中表现得像 radioButtons/* 当时只选择了一个 */ 我已经尝试过这个
private void checkButtonStatuses(ActionEvent event){
((ToggleButton)event.getSource()).getToggleGroup().getToggles().stream().parallel().forEach(e ->
{
if(e.isSelected()){
if(e.equals(event.getSource())){
if(e.isSelected()){
e.setSelected(false);//in case clicked on already selected toggle button
}
}else{
e.setSelected(false);
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
这就是我称之为的地方
@FXML
private void setPageBrowseProfiles(ActionEvent event){
load("browseProfiles");
checkButtonStatuses(event);
}
Run Code Online (Sandbox Code Playgroud)
附加到toggleButton,
我遇到了例外情况,无论哪种方式都不起作用(仍然选择了多个切换按钮)。
Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1768)
at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1651)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.event.Event.fireEvent(Event.java:204)
at …Run Code Online (Sandbox Code Playgroud) java ×5
javafx ×3
buttongroup ×1
byte ×1
docker ×1
image ×1
java-8 ×1
lambda ×1
mysql ×1
performance ×1
processing ×1
spring ×1
spring-boot ×1