Thứ Tư, 23 tháng 11, 2005

SWT - Phần 2

Trước khi xem nội dung bài viết thứ 2 có thể đọc lại nội dung bài 1 tại đây. Bài viết thứ hai tập trung trả lời các câu hỏi sau:
- Có gì trong gói SWT ?
- Bắt đầu viết ứng dụng với SWT như thế nào ?
- Có thể phát triển các ứng dụng SWT ngoài Eclipse hay không ?
- Viết HelloWorld với SWT

5 nhận xét:

  1. 4. Gói SWT

    SWT bao gồm một số gói chính. Bạn có thể xem thông tin về chúng trong tài liệu API. Bạn có thể tải API này tại trang web của Eclipse .

    org.eclipse.swt: bao gồm các lớp định nghĩa các constant và các exception được sử dụng cho các lớp của SWT . Một gói SWT bao gồm có 3 lớp : SWT , SWTException và SWTError . Bạn sẽ thường xuyên sử dụng lớp SWT bởi nó bao gồm các constant cho thư viện SWT giống như là keyboard , error, color, layout, text, style, …
    org.eclipse.swt.widgets: Gồm hầu hết các thành phần đồ họa cơ bản .Nó bao gồm cả interface và classes.
    org.eclipse.swt.events: Định nghĩa các event, listener mà các thành phần SWT sử dụng . Gói này bao gồm 3 nhóm lớp khác nhau là Listener interfaces, các lớp Adapter , và lớp Event .
    org.eclipse.swt.dnd: Bao gồm các lớp hỗ trợ cho việc kéo thả (drag-and-drop) các thành phần giao diện của SWT .
    org.eclipse.swt.layout: Bao gồm các lớp cung cấp việc thiết đặt tự động vị trí và kích thước cho các thành phần giao diện SWT .
    org.eclipse.swt.print: Bao gồm các lớp hỗ trợ việc in ấn các thành phần giao diện SWT .
    org.eclipse.swt.graphics: Gói này cung cấp các point , rectangle , region, con trỏ, màu sắc , phông chữ, các khung cảnh đồ họa (giống như là GCs ) nơi mà các thao tác vẽ được cài đặt , và ảnh bao gồm cả bao gồm cả mã cho việc hiển thị và những thành phần trung cho việc nạp/lưu trữ chúng .

    Trả lờiXóa
  2. 5. Bắt đầu với SWT như thế nào ?

    Nếu như bạn muốn nghiên cứu SWT , ngay bây giờ bạn có thể vào trang http://www.eclipse .org để tải về bộ Eclipse mới nhất ( một IDE miễn phí , nguồn mở dành cho các lập trình viên ). Phát triển một ứng dụng SWT khác với phá triển một ứng dụng Swing . Để bắt đầu với một trình SWT , bạn cần thêm thư viện SWT cho các classpath của bạn bằng cách đặt các biến môi trường cần thiết .

    Thư viện đầu tiên bạn cần có là gói swt.jar nằm trong thư mục ECLIPSE_HOME\eclipse\plugin\org.eclipse.swt.win32_3.0.0\ws\win32 (đường dẫn này có thể khác ở những phiên bản khác nhau ). Gói swt.jar cần được thêm vào classpath của bạn bằng cách chọn Project¬ -> Properties -> JavaBuildPath -> Libraries
    Add Variable ->Eclipse Home -> Extend và chọn swt.jar rồi nhấn OK. Và bây giờ bạn có thể biên dịch được các ứng dụng SWT trong Eclipse .

    Dưới đây là các bước cơ bản để tạo một ứng dụng SWT :
    - Tạo một Display .
    - Tạo một hoặc nhiều Shell .
    - Đặt một Layout cho Shell .
    - Tạo các thành phần giao diện cho Shell như các Button , Label .
    - Mở cửa sổ Shell bằng phương thức Open .

    Trả lờiXóa
  3. 6. Có thể phát triển các ứng dụng SWT ngoài Eclipse hay không ?

    Câu trả lời cho bạn là có .Trước tiên để dịch và chạy được một chương trình SWT mà không cần phải sử dụng Eclipse bạn cần có gói swt.jar và thư viện swt-win32-3062.dll (dành cho môi trường Windows , phiên bản 3.0) . Đối với các phiên bản trước thì gói swt-win32-3062.dll được thay bằng gói swt.dll . Bạn có thể tìm thấy các gói này trong thư mục swt trong thư mục plugin của Eclipse . Trên máy của tôi thì gói swt.jar nằm ở C:\Eclipse\plugins\org.eclipse.swt.win32_3.0.0\ws\win32 , còn thư viện swt-win32-3062.dll nằm ở C:\Eclipse\plugins\org.eclipse.swt.win32_3.0.0\os\win32\x86 .
    Chú ý : Nếu như bạn muốn lấy riêng thư viện SWT mà không cần eclipse thì bạn có thể tải tại địa chỉ : http://www.eclipse.org/downloads .
    Đối với gói swt.jar bạn có 3 cách thiết đặt :
    - Bạn có thể đặt classpath đến thư viện swt.jar .
    - Hoặc bạn có thể đặt gói swt.jar vào thư mục dành cho các thư viện mở rộng của java : JAVA_HOME\jre\lib\ext . Trên máy của tôi là C:\Program Files\Java\jdk1.5.0\jre\lib\ext .
    - Hoặc , giải nén gói này , lấy toàn bộ thư mục org copy vào thư mục chứa chương trình của bạn (Bạn có thể sử dụng các này khi đóng gói ứng dụng ) .
    Bây giờ thì bạn có thể biên dịch được một trình SWT rồi đó . Tuy nhiên để chạy được nó , bạn phải thiết đặt cho thư viện swt-win32-3062.dll . Bạn có thể chọn một trong 3 cách sau :
    - Đặt swt-win32-3062.dll vào trong thư mục Windows\system32 hay WINNT\system32 . Trên máy của tôi là C:\WINNT\system32 .
    - Hoặc đặt swt-win32-3062.dll vào trong thư mục JAVA_HOME\bin . Trên máy của tôi là C:\Program Files\Java\jdk1.5.0\bin .
    - Hoặc đặt thư viện swt-win32-3062.dll vào trong thư mục chứa chương trình (Cách này được xử dụng khi bạn đóng gói ứng dụng ).
    Nào , hãy lấy TextPad hay bất cứ một trình biên soạn mã nào viết một ứng dụng java sử dụng bộ giao diện SWT , bạn có thể biên dịch và chạy nó bình thường.

    Trả lờiXóa
  4. 7. HelloWorld với SWT

    Ví dụ dưới đây minh họa cách tạo một ứng dụng SWT đơn giản .

    1. import org.eclipse.swt.widgets.*;
    2.     public class HelloWorld {
    3.       public HelloWorld(){
    4.          Display display = new Display();
    5.          Shell shell = new Shell(display);
    6.          shell.setSize(500,270);
    7.          shell.setText("Hello");
    8.          shell.setLayout( new FillLayout());
    9.
    10.         //tao mot label
    11.         Label label = new Label(shell, SWT.CENTER);
    12.         label.setText("Hello World !");
    13.         while(!shell.isDisposed()){
    14.            if(!display.readAndDispatch())
    15.                display.sleep();
    16.            }
    17.         display.dispose();
    18.      }
    19.
    20.      public static void main(String args[]){
    21.        new HelloWorld();
    22.      }
    23. }

    Dòng 4 khởi tạo một luồng là một đối tượng thuộc lớp Display. Đối tượng này làm
    nhiệm vụ quản lí toàn bộ giao diện được tạo ra trong nó. Sau đó, một đối tượng
    Shell được tạo ra nhận đối tượng thuộc lớp display là thông số. Shell không được
    truyền bất cứ style bit nào. Do đó, shell này sẽ là cửa sổ chính của ứng dụng.
    Dòng 6 và 7 làm nhiệm vụ đặt kích thước và đặt lại tiêu đề cho cửa sổ này. Dòng
    8 đặt layout cho shell, chú ý , bạn phải đặt layout cho shell để có thể hiển thị
    được các widget trong nó, nếu không, bạn phải setBounds cho các đối tượng đó.
    Theo mặc định, shell sẽ không cài đặt layout , cũng có nghĩa là layout bằng
    null. Dòng 11 và 12 làm tạo ra một đối tượng thuộc lớp Label và đặt nhãn và đối
    tượng đó . Ta có thể thấy khi khởi tạo ra đối tượng label, phải truyền vào
    container chứa nó. Kiểu style bit là SWT.CENTER chỉ rõ label này được căn giữa.
    Vòng lặp while kiểm tra trang thái của shell xem đã bị đóng chưa, nếu chưa thì
    gọi lệnh sleep cho display. Mọi câu lệnh sau vòng lặp while sẽ chỉ được thực thi
    sau khi shell bị đóng lại.

    Trả lờiXóa
  5. Không biết bạn có thường xuyên vào blog không? Mình như hướng dẫn, chương trình không lỗi nhưng lại không chạy được.
    Nếu bạn đọc được những dòng này mong bạn giúp mình với. Mình đang cần rất gấp mà chẳng biết làm thế nào.
    Nếu được bạn có thể add nick yahoo này của mình: backviet01
    hoặc gmail: backviet01@gmail.com
    sdt: 01649776785
    để liên lạc giúp mình với.
    Vì không biết liên lạc với bạn thế nào nên rất mong bạn nhiệt tình giúp.
    Thanks for all

    Trả lờiXóa

nhudinhthuan@gmail.com