2011-01-20 29 views
5

Tôi đang cố gắng lấy các đối số được truyền qua biểu mẫu dòng lệnh khi tôi chạy ứng dụng của mình. Tôi có một dự án được thực hiện thông qua netbeans sử dụng lớp SingleFrameApplication hoặc khung ứng dụng swing. Phương thức chính thực hiện cuộc gọiLàm cách nào để xử lý các đối số dòng lệnh trong Khung ứng dụng Swing của Java

launch(MyApp.class, args); 

bằng phương pháp chính của nó. Tài liệu được tìm thấy trong số http://java.sun.com/developer/technicalArticles/javase/swingappfr/ cho biết:

Phương thức khởi chạy này gọi phương thức khởi tạo tùy chọn của ứng dụng ngay trước khi gọi phương thức khởi động. Bạn có thể sử dụng phương thức khởi tạo để thực hiện bất kỳ bước cấu hình hoặc thiết lập ban đầu nào. Ví dụ, bạn có thể xử lý các đối số dòng lệnh từ bên trong phương thức khởi tạo. Bạn cũng có thể kiểm tra kết nối cơ sở dữ liệu hoặc thiết lập thuộc tính hệ thống. Tóm lại, khung công tác cung cấp phương thức này cho bất kỳ thiết lập liên quan đến UI nào mà ứng dụng của bạn có thể cần trước khi hiển thị giao diện người dùng. Các lớp Application và SingleFrameApplication cung cấp một phương thức rỗng cho phương thức khởi tạo. Phương thức này không làm gì theo mặc định.

chúng ta đang nói về các phương pháp MyApp.initialize đây? Nếu vậy, dường như không có tham chiếu đến tham số args.

EDIT: Đây không phải là một applet, nó là một ứng dụng máy tính để bàn. Hãy nhớ rằng, nó sử dụng khung ứng dụng Swing, có nghĩa là, một phần của điều này là có một lớp "launcher" cho bạn giao diện đồ họa lớp java chính. Đoạn mã sẽ là:

public class MyApp extends SingleFrameApplication { 

@Override protected void startup() { 
    MyAppGUI view = new MyAppGUI(this); 

    show(new MyAppGUI(this)); 
} 

public static void main(String[] args) { 
    launch(MyAppGUI.class, args); 
} 
+0

Có một số chi tiết bị thiếu. Đây có phải là Applet không? Làm thế nào bạn khởi chạy nó ngay bây giờ? – jzd

Trả lời

2

Có, bạn phải ghi đè phương thức initialize(...). Trong liên kết bạn đã cung cấp, có Code Example 6, cho biết cách sử dụng phương thức initialize(...). Nó rõ ràng có các đối số dòng lệnh trong đó.

public class HelloWorld extends SingleFrameApplication { 
    ... 

    @Override 
    protected void initialize(String[] args) { 
     ... 
    } 
} 
+0

Xin lỗi vì đã lãng phí thời gian của mọi người .... Tôi nhớ điều đó bằng cách nào đó .... :( – EDJ

1

Lấy từ tài liệu chính thức của Sun. Thêm điều này vào lớp ứng dụng của bạn.

@Override 
protected void initialize(String[] args) { 
    ... 
} 
Các vấn đề liên quan