import java.awt.*
import javax.swing.*

fun main() {
EventQueue.invokeLater {
val frame = JFrame()
frame.setSize(300, 200)
frame.defaultCloseOperation = JFrame.EXIT_ON_CLOSE
frame.isVisible = true

val button = JButton("button")
button.addActionListener { JOptionPane.showMessageDialog(null, "Hello!") }

frame.layout = FlowLayout()
frame.add(button)
}
}

import java.awt.*
import javax.swing.*

fun main() {
EventQueue.invokeLater { JButtonTest() }
}

class JButtonTest : JFrame() {
init {
setSize(300, 200)
defaultCloseOperation = EXIT_ON_CLOSE
isVisible = true

val button = JButton("button")
button.addActionListener { JOptionPane.showMessageDialog(null, "Hello!") }

layout = FlowLayout()
add(button)
}
}