public class HelloWorldSwing {
private static func createAndShowGUI() {
//Create and set up the window.
var frame: JFrame! = JFrame("HelloWorldSwing")
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
//Add the ubiquitous "Hello World" label.
var label: JLabel! = JLabel("Hello World")
frame.getContentPane().add(label)
//Display the window.
frame.pack()
frame.setVisible(true)
}
public static func main(_ args: String!) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(class Runnable {
func run() {
createAndShowGUI()
}
})
}
}
[end code]
This will fail to compile; it’s a bit too close to Java to work. In particular, in Swift you can’t pass a class into a function like invokeLater does; instead, Swift uses closures, which Java lacks and must make up with anonymous classes.
Saagar Jha
···
On Jan 20, 2017, at 4:16 PM, Ethin Probst via swift-users <swift-users@swift.org> wrote:
Is the following code valid swift 3 (and later) code? If not, is it
translatable to swift 3? This was translated using Elements Oxidizer
(Elements Oxidizer | RemObjects Software) using the Hello
World Java Swing application
(Java Tutorials Sample Code
and JDK 21 Documentation - Home).
It will run in RemObjects Silver in Visual Studio, but is it valid
Swift 3 code? You don't have to try and compile it--as Elements is the
only platform that compiles Swift to the JVM (I think?) but does it
follow the Swift 3 language specification (or the latest version,
whatever that may be)?
Code:
[start code]
import javax.swing
public class HelloWorldSwing {
private static func createAndShowGUI() {
//Create and set up the window.
var frame: JFrame! = JFrame("HelloWorldSwing")
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
//Add the ubiquitous "Hello World" label.
var label: JLabel! = JLabel("Hello World")
frame.getContentPane().add(label)
//Display the window.
frame.pack()
frame.setVisible(true)
}
public static func main(_ args: String!) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(class Runnable {
func run() {
createAndShowGUI()
}
})
}
}
[end code]
--
Signed,
Ethin D. Probst
_______________________________________________
swift-users mailing list
swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users