2009-03-09 56 views
13

Tôi đã làm việc với thư viện Swing trong một thời gian dài. Tôi đang làm việc trên một dự án mới cho trường học và do tính chất của chương trình, nó không thể trông giống như một GUI Swing chung/nhàm chán. Có một thư viện Java GUI thú vị mà không phải là Swing hay AWT?Thư viện Java GUI

+0

Tải xuống trình duyệt web, tạo Flash hoặc Html. Và kết nối nó với java CLI của bạn. Đó là cách tốt nhất và thông minh để giải quyết nó. (khi không có gì tồn tại, đặc biệt cho java swing) – YumYumYum

Trả lời

5

Các Standard Widget Toolkit: http://www.eclipse.org/swt/

+2

Sau đó, nó sẽ trông giống như một gui Windows chung/nhàm chán. ;) –

+0

@mmyers: Chỉ khi bạn đang sử dụng Windows. ;) –

+0

Tôi chắc rằng bạn có thể thực hiện các triển khai khác để chạy trong Windows. –

2

Tôi nghĩ rằng SWT/JFace (đi kèm với Eclipse nhưng được cho là có thể được sử dụng độc lập) là thiết kế tốt và thú vị hơn để sử dụng/học. Ví dụ, JFace theo sau một cách tiếp cận MVC.

4

JavaFX có lẽ?

+0

Đây có phải là điều anh ta có thể sử dụng ngày hôm nay để xây dựng bất cứ điều gì hữu ích? – cherouvim

+0

Chắc chắn, tại sao không? Nó được thực hiện và trong tự nhiên. http://www.indicthreads.com/interviews/1180/javafx_script_client_java_swing_ria.html – Boden

+0

Cảm ơn, điều này có thể hoàn hảo cho những gì tôi đang làm! –

7

Nếu bạn nghĩ Swing tạo ra giao diện người dùng nhàm chán thì bạn thực sự cần phải có được cuốn sách này: Filthy Rich Clients.

+0

John có xứng đáng không? Tôi đang sử dụng Java cho một số dự án thú cưng trên máy tính để bàn nhưng khung công tác GUI là một trở ngại. Tôi hài lòng hơn với Jambi Qt nhưng kể từ khi nó bị ngưng, tôi bắt đầu tìm kiếm ở nơi khác.Cuốn sách dường như chủ yếu là đối phó với đồ họa và hình ảnh động trong khi tôi quan tâm nhiều hơn ra khỏi chức năng hộp. –

+0

@Yorgo Tôi không phải là một người sử dụng swing nhưng tôi nghĩ rằng cuốn sách chắc chắn là giá trị mua nếu bạn có kế hoạch xây dựng các ứng dụng Swing. Bạn nói đúng về việc nó đề cập rất nhiều với khía cạnh sôi nổi của UI nhưng các tác giả rất có kinh nghiệm và tôi chắc chắn bạn sẽ đạt được rất nhiều thứ bằng cách đọc nó. BTW Tôi đã nhận nó miễn phí trong một sự kiện JUG :) – cherouvim

+0

@cherouvim: Swing có vấn đề trong quét flint minh bạch và tiến bộ. Trong một câu hỏi của tôi, nó chưa bao giờ được giải quyết. Tôi buộc phải tìm cách thay thế. – YumYumYum

7

Bạn chỉ có thể sử dụng số new Look & Feel.

+1

Có một vấn đề nghiêm trọng với trang web đó. Nhiều dự án đã chết và không có dấu hiệu nào thực sự được duy trì. –

0

Hãy xem qua JavaFX. Nó được thiết kế rất hào nhoáng.

1

Tôi không nghĩ rằng bạn cần phải nhìn vào các thư viện GUI khác nhau, tôi nghĩ rằng bạn cần phải nhìn vào Look khác nhau & cảm thấy, tôi khá giống như Synthetica, cộng với một số Look & cảm thấy họ được tự do cho các ứng dụng phi thương mại.

3

Vâng, nếu bạn sử dụng Java 6u10 +, bạn có thể sử dụng tùy chọn Giao diện Swing mới, Nimbus.

UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); 
0

Bạn cũng có thể thử Java Scenegraph "standalone" (nghĩa là chỉ sử dụng java + scenario chứ không phải javafx). Nhưng tài liệu của nó không phải là rất tốt. Đây là một mẫu mã, sử dụng scenegraph 1.0 ("Scenario.jar" được gửi kèm với JavaFX).

import java.awt.Color; 
import java.awt.Paint; 
import java.awt.geom.Point2D; 

import javax.swing.JFrame; 
import javax.swing.SwingUtilities; 

import com.sun.scenario.scenegraph.JSGPanel; 
import com.sun.scenario.scenegraph.SGGroup; 
import com.sun.scenario.scenegraph.fx.FXText; 



public class HelloWorldScenario101 implements Runnable { 



    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new HelloWorldScenario101()); 
    } 



    public HelloWorldScenario101() { 
     // 
    } 



    @Override 
    public void run() { 

     this.frame = new JFrame(); 
     this.panel = new JSGPanel(); 
     this.text = new FXText(); 
     this.paint = new Color(255, 0, 0, 255); 

     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setTitle("Hello World"); 
     frame.add(this.panel); 
     frame.setContentPane(this.panel); 
     scene = new SGGroup(); 
     this.text.setText("Hello World"); 
     this.text.setFillPaint(this.paint); 
     this.text.setLocation(new Point2D.Float(10, 10)); 
     this.scene.add(this.text); 
     this.panel.setScene(scene); 
     frame.pack(); 
     frame.setLocationByPlatform(true); 
     frame.setVisible(true); 

    } 



    private JFrame frame; 

    private JSGPanel panel; 

    private SGGroup scene; 

    private FXText text; 

    private Paint paint; 



} 
0

Tôi mạnh mẽ sẽ đề nghị Qt Jambinếu nó không discontinued. Bạn có thể xem số demo để xem ứng dụng của bạn sẽ trông như thế nào.
Tôi vẫn đang chờ xem nỗ lực của cộng đồng sẽ tiến triển như thế nào trước khi quyết định từ bỏ nó nhưng tôi sẽ không bắt đầu một thứ gì đó quan trọng với tôi trong Qt Jambi ngay bây giờ, nhưng tôi nghĩ rằng nó sẽ phù hợp với hoàn cảnh của bạn .

0

Bạn có thể sử dụng Qt cho Java, Qt-Jambi. Nó chỉ là một thư viện tuyệt vời.