前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >javafx框架tornadofx实战-舒尔特6-增加导出舒尔特方格功能

javafx框架tornadofx实战-舒尔特6-增加导出舒尔特方格功能

原创
作者头像
用户6167008
修改2020-06-15 14:35:50
7840
修改2020-06-15 14:35:50
举报

本节需要导入以下3个类:

import javafx.embed.swing.SwingFXUtils
import javafx.scene.SnapshotParameters
import javax.imageio.ImageIO

为了避免代码太多,本节将部分代码移动到控制器中,新建控制器类:

import tornadofx.*

class MainController: Controller(){
    val outPath= stringProperty(File("").absolutePath)  //导出目录,默认为当前目录
    val outNums= intProperty(5)     //导出目录次数
}

将控制器注入视图view中,在view中增加如下代码:

    private   val c by inject<MainController>()

新建设置视图,提供对相关参数进行设置的窗口

import javafx.scene.layout.Priority
import tornadofx.*

class SettingView : View("设置") {
    private val c by inject<MainController>()
    override val root = borderpane {
        center = vbox(5) {
            hbox(5) {
                label("导出目录:")
                textfield(c.outPath) {
                    hgrow = Priority.ALWAYS
                }
            }
            hbox(5) {
                label("导出次数:")
                combobox(c.outNums, (1..100 step 2).toList())
            }
        }

        setPrefSize(500.0, 500.0)
        paddingAll = 10.0
        style {
            fontSize = 16.px
        }
    }
}

在主视图view中的右侧增加一个drawer,用于显示设置视图:

    right = drawer {
            item<SettingView>()
        }

在“刷新”按钮右侧增加“导出”按钮:

button("导出") {
    action {
        (1..c.outNums.value).map {i->
            refreshGrid()
            val img = r.snapshot(SnapshotParameters(), null)
            ImageIO.write(SwingFXUtils.fromFXImage(img, null), "png", File(c.outPath.value+ "./schulteGrid$i.png"))
        }

        information("恭喜!成功导出 ${c.outNums.value} 张舒尔特方格。")
    }
}

可以将导出的舒尔特方格图片拷贝到word中打印出来给小朋友练习了

下载体验

手机APP体验

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本节需要导入以下3个类:
  • 为了避免代码太多,本节将部分代码移动到控制器中,新建控制器类:
  • 将控制器注入视图view中,在view中增加如下代码:
  • 新建设置视图,提供对相关参数进行设置的窗口
  • 在主视图view中的右侧增加一个drawer,用于显示设置视图:
  • 在“刷新”按钮右侧增加“导出”按钮:
  • 可以将导出的舒尔特方格图片拷贝到word中打印出来给小朋友练习了
  • 下载体验
  • 手机APP体验
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档