2010-09-01 27 views
5

Tôi đang phát triển một ứng dụng Java dựa trên Swing trong Eclipse trên Windows XP. Tôi có một thiết lập màn hình kép.Thay đổi Hiển thị được sử dụng cho Eclipse Khởi chạy

Tôi muốn khởi chạy chương trình trên một màn hình khác với màn hình tôi đang chạy Eclipse. Làm cách nào để thiết lập Cấu hình gỡ lỗi để thực hiện điều này?

+0

Hệ điều hành nào bạn đang sử dụng? – Gadolin

+0

Tôi đang sử dụng WinXP. –

Trả lời

2

Khi mở khung mới, khung mặc định là tọa độ 0,0. Chính xác nơi điều này phụ thuộc vào bố cục màn hình của hệ điều hành của bạn. Thông thường, 0,0 sẽ là góc trên bên trái của màn hình chính.

Giải pháp cho vấn đề của bạn là chạy Eclipse trên màn hình phụ, để các ứng dụng sẽ mở trên màn hình (chính) khác. Bạn không thực sự phải di chuyển Eclipse để làm điều này. Đi vào cài đặt màn hình của hệ điều hành và chuyển màn hình chính sang màn hình bạn muốn khởi động ứng dụng. Eclipse bây giờ sẽ chạy trên màn hình phụ.

Khung hình mới của bạn bây giờ sẽ được mở trên màn hình khác và bạn đã không thay đổi mã nào trong quá trình này, chỉ là cài đặt cấu hình của hệ điều hành.

+0

Cảm ơn, điều này dường như làm các trick! –

0

Tôi nghĩ bạn không thể làm điều đó. Giải pháp duy nhất tôi tìm thấy là di chuyển chương trình từ màn hình đầu tiên sang chế độ thứ hai theo cách thủ công và sau đó đóng nó ở vị trí này (với nút đóng và không giao diện điều khiển chấm dứt nút màu đỏ ngừng máy ảo mà không lưu bất kỳ thứ gì). Sau đó, vào lần khởi động tiếp theo, chương trình khởi động của bạn sẽ xuất hiện trên màn hình thứ hai. Để giải pháp này hoạt động, cấu hình khởi chạy của bạn không được xóa không gian làm việc và cấu hình ở mỗi lần khởi chạy để giữ vị trí màn hình của chương trình.

Xem RCP opening monitor cho nội dung có liên quan trên ứng dụng RCP.

+1

Điều đó sẽ hoạt động đối với ứng dụng RCP, nhưng không hoạt động đối với ứng dụng Swing. – zvikico

+0

Oopppsss zvikico là đúng, câu trả lời của tôi là Ok cho một ứng dụng RCP nhưng không phải là một Swing. Tôi đã không nhận được câu hỏi một cách chính xác, xin lỗi. –

0

Bạn có thể đạt được hành vi đó theo lập trình. Tôi chắc chắn bạn có thể Google và tìm các ví dụ về cách mở cửa sổ của bạn trên màn hình thứ hai. Nếu đó là thứ bạn muốn chỉ ở thời gian gỡ lỗi, hãy thêm một chuyển đổi trong cấu hình khởi chạy của bạn (cụ thể hơn, đối số thời gian chạy JVM) và kiểm tra công tắc (System.getProperty) khi chương trình của bạn bắt đầu.

+0

Tôi không muốn phải sửa đổi mã của mình để thực hiện việc này, có thể điều khiển cửa sổ mặc định của chương trình trong mã java, nhưng đây không phải là một tùy chọn. Tôi muốn thiết lập Eclipse để làm điều này, để tôi có thể tái sử dụng thiết lập trên nhiều dự án. Nếu có các đối số thời gian chạy JVM để chọn màn hình mặc định, đó chính xác là những gì tôi theo sau. Bạn không biết mình là ai, phải không? –

+0

Tôi không quen với tùy chọn này. Nó phụ thuộc vào việc thực hiện GraphicsEnvironment/GraphicsConfiguration. Bạn có thể viết một thành phần tái sử dụng và sử dụng nó trong suốt các dự án của bạn. Nó sẽ không ảnh hưởng đến mã sản xuất của bạn. – zvikico

2

Nó phụ thuộc một chút cách bạn đã thiết lập màn hình thứ hai của mình. Đối với câu trả lời của tôi, tôi giả định rằng bạn thêm nó như là một "phần mở rộng" cho máy tính để bàn của bạn (vì vậy bạn có thể di chuyển các cửa sổ giữa chúng bằng cách kéo bằng chuột).

Ở chế độ này, màn hình của bạn trở nên lớn hơn. Để thấy điều đó, hãy gọi GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds.

Chiều rộng phải là tổng chiều rộng của hai màn hình và chiều cao phải lớn hơn hai chiều cao.

Lưu ý rằng tọa độ x có thể là < 0 (điều này xảy ra nếu bạn thực hiện đúng màn hình mặc định).

Để di chuyển cửa sổ của bạn sang màn hình khác, chỉ cần sử dụng vị trí (setPosition()) với giá trị phù hợp và chuyển vị trí đó làm tùy chọn cho chương trình. Hoặc lưu vị trí hiện tại làm nút tùy chọn và mở lại cửa sổ ở cùng một vị trí khi ứng dụng được chạy lại.

Nếu màn hình của bạn được định cấu hình độc lập, bạn nên xem xét API GraphicsEnvironment.getScreenDevices().

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