前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >来做个小工具:汉字转拼音

来做个小工具:汉字转拼音

原创
作者头像
用户6167008
修改2019-09-29 14:29:44
1.3K0
修改2019-09-29 14:29:44
举报
代码语言:txt
复制
import com.rnkrsoft.bopomofo4j.Bopomofo4j
import javafx.geometry.Pos
import tornadofx.*

class Bopomofo4jApp : App(Bopomofo4jView::class)
class Bopomofo4jView : View("汉字转拼音") {
    val initStr="""
        我们中国的汉字
落笔成画留下五千年的历史
让世界都认识
我们中国的汉字
一撇一捺都是故事
跪举火把虔诚像道光
四方田地落谷成仓
古人象形声意辨恶良
魃魈魁鬾魑魅魍魉
bá xiāo kuí jì chī mèi wǎng liǎng
Wu 又双叒叕
Wu yòu shuāng ruò zhuó
Wu 火炎焱燚
Wu huǒ yán yàn yì
Wu 水沝淼㵘
Wu shuǐ zhuǐ miǎo màn
㙓
kuí bǎo
茕茕孑立 沆瀣一气
踽踽独行 醍醐灌顶
jǔ jǔ dú xíng tí hú guàn dǐng
绵绵瓜瓞 奉为圭臬
mián mián guā dié fèng wéi guī niè
龙行龘龘 犄角旮旯
lóng xíng dá dá jī jiǎo gā lá
娉婷袅娜 涕泗滂沱
pīng tíng niǎo nuó tì sì pāng tuó
呶呶不休 不稂不莠
náo náo bù xiū bù láng bù yǒu
卬
áng
咄嗟 蹀躞 耄耋 饕餮
duō jiē dié xiè mào dié tāo tiè
囹圄 蘡薁 觊觎 龃龉
líng yǔ yīng yù jì yú jǔ yǔ
狖轭鼯轩 怙恶不悛
yòu è wú xuān hù è bù quān
其靁虺虺 腌臢孑孓
陟罚臧否 针砭时弊
鳞次栉比 一张一翕
我们中国的汉字
落笔成画留下五千年的历史
让世界都认识
我们中国的汉字
一撇一捺都是故事
现在全世界各地
到处有中国字
黄皮肤的人骄傲地把头抬起
我们中国的汉字
一平一仄谱写成诗
茕茕孑立 沆瀣一气
hàng xiè yī qì
踽踽独行 醍醐灌顶
绵绵瓜瓞 奉为圭臬
龙行龘龘 犄角旮旯
娉婷袅娜 涕泗滂沱
呶呶不休 不稂不莠
咄嗟 蹀躞 耄耋 饕餮
囹圄 蘡薁 觊觎 龃龉
狖轭鼯轩 怙恶不悛
其靁虺虺 腌臢孑孓
qí léi huī huī ā zā jié jué
陟罚臧否 针砭时弊
鳞次栉比 一张一翕
我们中国的汉字
落笔成画留下五千年的历史
让世界都认识
我们中国的汉字
一撇一捺都是故事
现在全世界各地
到处有中国字
黄皮肤的人骄傲地把头抬起
我们中国的汉字
一平一仄谱写成诗
优美旋律自宫商角徵羽
众人皆说成之于语故成语
    """.trimIndent()
    val hz = stringProperty(initStr)
    val py = stringProperty()
    val ydType = intProperty(0)
    override val root = borderpane {
        paddingAll = 10.0
        top = hbox(10) {
            alignment = Pos.CENTER
            paddingBottom=10.0
            togglegroup {
                val tg = this
                selectedToggleProperty().onChange {
                    ydType.value = tg.selectedToggle.userData as Int
                    when (ydType.value) {
                        in (0..2) -> {
                            hz2py(ydType = ydType.value)
                        }
                        3 -> runAsync {
                            Bopomofo4j.local()
                            py.value = Bopomofo4j.cht2chs(hz.value)
                        }
                        4 -> runAsync {
                            Bopomofo4j.local()
                            py.value = Bopomofo4j.chs2cht(hz.value)
                        }
                    }
                }
                radiobutton("声母音调") {
                    userData = 0
                    isSelected = true
                }
                radiobutton("数字音调") { userData = 1 }
                radiobutton("无音调") { userData = 2 }
                radiobutton("繁体->简体") { userData = 3 }
                radiobutton("简体->繁体") { userData = 4 }
            }
            button("开始转换") {
                action {
                    hz2py(hz.value)
                }
            }
        }

        center = hbox(10) {
            vbox(10) {
                label("汉字")
                textarea(hz) {
                    prefHeight=700.0
                    isWrapText = true
                    contextmenu {
                        item("转换所有").action {
                            hz2py(ydType = ydType.value)
                        }
                        item("转换选中").action {
                            hz2py(selectedText, ydType.value)
                        }
//                        item("转换当前行").action {
//                            hz2py(text, ydType.value)
//                        }
                    }
                }
            }
            vbox(10) {
                label("拼音")
                textarea(py) {
                    prefHeight=700.0
                    isWrapText = true
                }
            }
        }
    }

    private fun hz2py(hzstr: String = hz.value, ydType: Int = 0) {
        runAsync {
            Bopomofo4j.local()
            py.value = Bopomofo4j.pinyin(hzstr, ydType, false, false, " ")
        }
    }
}

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档