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
> (http://elementscompiler.com/elements/oxidizer.aspx) using the Hello
> World Java Swing application
> (https://docs.oracle.com/javase/tutorial/displayCode.html?code=https://docs.oracle.com/javase/tutorial/uiswing/examples/start/HelloWorldSwingProject/src/start/HelloWorldSwing.java
> and 
> https://docs.oracle.com/javase/tutorial/uiswing/examples/start/HelloWorldSwingProject/src/start/HelloWorldSwing.java).
> 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

_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to