2009-10-15 34 views
25

Từ các phần đọc của Lập trình trong sách Scala, tôi nhận ra rằng Scala có thể làm việc với các thành phần Swing Java để tạo các ứng dụng GUI.Các ứng dụng GUI Scala và Swing

Câu hỏi của tôi là nếu có bất kỳ dự án hoặc ứng dụng được phát hành nào (không chỉ đơn giản là ví dụ) sử dụng Scala và Swing?

Trả lời

34

Đây có phải là vì bạn muốn xem một số mã Swing thực tế Scala, hoặc là bạn chỉ quan tâm về việc liệu Scala Swing là "định hướng sản xuất sẵn sàng "? Nếu nó là sau này, Scala Swing là khá tốt: Tôi đã bắt đầu sử dụng nó cho tất cả các mã GUI. Hãy so sánh:

JButton b = new JButton(); 
b.setText("OK"); 
b.setFont(f); 
b.setPreferredSize(new Dimension(20, 20)); 
b.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     //reacction here 
    } 
}); 

với:

val b = new Button { 
    text = "OK" 
    font = f 
    preferredSize = (20, 20) 
} 
listenTo(b) 
reactions += { 
    case ButtonClicked(`b`) => //reaction here 
} 

Như Scala Swing thực sự chỉ là một lớp nhẹ trên đầu trang của Java Swing, bạn có thể tích hợp bất kỳ thành phần Swing Java dễ dàng và chắc chắn rằng tất cả hoạt động OK.

Điều đó nói rằng, tài liệu như Scala 2.7 khá kém. Tôi hiểu rằng Scala Swing đang được nâng cấp trong bản phát hành 2.8 và điều này sẽ bao gồm tài liệu được cải thiện.

+0

Một chút của cả hai, tôi giả sử. Như thường lệ, Scala đọc dễ dàng hơn nhiều so với Java tương đương của nó. Cảm ơn. – ZacharyP

7

Scalide tại mã của Google, và sau đó Scala chính nó đã Swing thư viện

+0

Cảm ơn ví dụ. – ZacharyP

+0

Bạn được chào đón. Scala thật hấp dẫn - phải không? – Bostone

11

House of Mirrors

Tôi đã viết this game tại Scala. Đó là mã nguồn mở và sử dụng Swing thông qua cả giao diện thư viện Java và Scala.

API Scala tuyệt vời để làm việc với dạng oxbox_lakes được minh họa. Tôi đã phải sử dụng giao diện Java chỉ cho điều khiển mức thấp cụ thể như thành phần alpha tùy chỉnh.

Trước khi thư viện Scala-swing đã trở nên ổn định, trò chơi được dựa trên Scala-Squib, nhưng dự án đó đã tạm dừng AFAIK.

3

Tôi đã tham dự một cuộc nói chuyện gần đây trên Scala và một trong những sản phẩm demo-ed là một ứng dụng khách Scala-Swing Twitter. Nó là mã nguồn mở và dự án là TalkingPuffin. Giao diện người dùng trông khá trơn tru cho một dự án Swing và tôi tin rằng dự án đang tìm kiếm người đóng góp.

+0

Điều đó giống như một ví dụ tuyệt vời về mã Scala Swing. Đó là một sự xấu hổ các ứng dụng bây giờ là không sử dụng được vì nó đã không được cam kết kể từ một vài tháng trước khi "OAuthocalypse". –

+0

Tính đến hôm nay, các cam kết có vẻ khá tích cực –

Các vấn đề liên quan