kotlin完全兼容java,而且表达能力比java强很多,我今天尝试了使用kotlin编写java swing
,可以使用kotlin将其包装为声明式UI,这将大大改善原生java swing的使用体验.
将GridBagConstraint改造为GBC,可以链式调用,详细内容见https://editor.csdn.net/md/?articleId=108300061
接着对原来的JFrame,JButton做一些扩展函数
import java.awt.BorderLayout
import java.awt.Dimension
import java.awt.LayoutManager
import java.awt.event.ActionEvent
import javax.swing.*
typealias AddComponent = JPanel.() -> Unit;
public fun App(
title: String,
size: Dimension = Dimension(400, 400),
layout: LayoutManager = BorderLayout(),
panel: JFrame.() -> Unit
) {
SwingUtilities.invokeLater {
val frame = JFrame(title);
frame.size = size;
frame.layout &