小编Tom*_*iak的帖子

如何从javafx imageView获取byte []?

我如何从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我开始考虑使用其他类作为我的图像/或者指向参考位置并使用路径/网址?

java processing byte javafx image

13
推荐指数
2
解决办法
9401
查看次数

在Shutdownhook上使用JavaFX Application.stop()方法

所以我使用shutdownhook进行清理,因为它并不总是保证shutdownhooks线程执行,我应该把这个代码推送到每次关闭我的应用程序时执行的JavaFX应用程序线程(方法stop())吗?如果没有关闭代码运行它基本上只是关闭套接字并且如果没有被杀死则杀死进程并不昂贵.

使用Application.stop()来清理ShutdownHook是一种好习惯吗?

来自doc的引用:

应用程序停止时会调用此方法,并为应用程序退出和销毁资源提供方便的位置.Application类提供的此方法的实现不执行任何操作.

注意:此方法在JavaFX应用程序线程上调用.

此方法仅用于清理UI的资源吗?到目前为止,我根本没有看到使用shutdownhook over stop()的原因.

java javafx

9
推荐指数
1
解决办法
6843
查看次数

Lambda vs匿名内部类性能:减少ClassLoader的负载?

我想知道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之后,问题出于好奇.

java performance lambda inner-classes java-8

8
推荐指数
2
解决办法
2749
查看次数

Docker MySQL - 无法从 Spring Boot 应用程序连接到 MySQL 数据库

我想要做的是,从我的 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)

mysql spring docker spring-boot docker-compose

7
推荐指数
1
解决办法
1万
查看次数

Intellij Project树形视图,显示包/目录之间的帮助线

有什么办法显示辅助线以更好地查看项目的层次结构/树结构?我的意思是 : 在此处输入图片说明

要看到更多这样的内容:

在此处输入图片说明

是否有一些最新的插件/主题/设置可以在项目视图中显示这些行?

java user-interface project-structure intellij-idea

5
推荐指数
1
解决办法
273
查看次数

使切换按钮的行为类似于单选按钮

我试图让我的切换按钮在组中表现得像 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 javafx buttongroup

1
推荐指数
1
解决办法
2043
查看次数