2011-08-17 34 views
5

Sử dụng JFileChooser, tôi có thể chọn thư mục bằng cách nhấp đúp vào thư mục (xuống cấp) bằng chuột. Có cách nào để chọn thư mục không có con chuột không? Ví dụ, có một ràng buộc quan trọng để đi xuống một cấp độ thư mục hoặc tôi phải bằng cách nào đó thêm một người nghe chính cho JFileChooser?Có cách nào để mở rộng thư mục JFileChooser mà không cần chuột

+0

Tôi không chắc lợi thế sẽ là gì? Nếu bạn khởi chạy ứng dụng webstart [ở đây] (http://download.oracle.com/javase/tutorial/uiswing/components/filechooser.html), bạn sẽ nhận thấy rằng bạn có thể điều hướng đến cửa sổ bằng các thư mục/tệp bằng cách sử dụng "tab", và sau đó điều hướng các thư mục/tập tin bằng cách sử dụng "mũi tên", và sau đó nhấn "enter" để đi xuống một cấp độ. – mre

Trả lời

1

Bạn đã thử thanh dấu cách hoặc nhập khóa chưa?

2

Bạn có thể sử dụng tab để di chuyển giữa các phần khác nhau của trình chọn, sau đó sử dụng các phím mũi tên để thay đổi thư mục nào được tô sáng, sau đó nhấn Enter để thay đổi thư mục thành thư mục được tô sáng.

Tôi đã thử nghiệm mã ví dụ sau trên máy tính của tôi (Vista/JDK 1.6) và nó hoạt động như tôi mong chờ:

import javax.swing.*; 
public class test { 
    public static void main(String[] args) { 
     (new JFileChooser("")).showOpenDialog(new JFrame()); 
     System.out.println("OK!"); 
    } 
} 

Nếu dự án của bạn không được đáp ứng similiarly trong JFileChooser bạn, tôi sẽ gỡ lỗi như sau:

  1. Tạo test.java chỉ với mã cần thiết để bật lên một tính năng chọn.
  2. Nếu ứng dụng thử nghiệm khác với ứng dụng của bạn, thứ gì đó trong mã của bạn khiến mã không thành công, chẳng hạn như mã skin UI, trình nghe bàn phím, v.v. Sửa đổi ví dụ, một thay đổi tại một thời điểm để sao chép cài đặt của bạn gần hơn chọn trong ứng dụng của bạn và xem liệu bạn có thể xác định vị trí của ứng dụng đó hay không.
  3. Nếu ngay cả một ứng dụng thử nghiệm cơ bản không hoạt động đúng, nó có thể là một cái gì đó về thiết lập của bạn, chẳng hạn như một lỗi trong phiên bản JDK, HĐH của bạn, v.v. Khắc phục sự cố thiết lập của bạn.
+0

Tôi đã thử cả thanh dấu cách và nhập khóa nhưng không hoạt động. Nhưng nó giúp hiểu biết nó nên làm việc với thanh nhập/không gian bởi vì bây giờ tôi có thể tập trung vào việc tìm hiểu lý do tại sao nó không hoạt động. – splatek

+0

Bạn đang sử dụng phiên bản java nào? Có gần đây không? Một số phiên bản cũ hơn có lỗi trong jfilechooser ui (ví dụ: xem: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4922507). Tôi sẽ chỉnh sửa câu trả lời của mình để giải thích rõ hơn. –

+0

Tôi đang sử dụng com.incors.plaf.alloy.AlloyLookAndFeel; khi tôi thay đổi thành com.sun.java.swing.plaf.windows.WindowsLookAndFeel nó hoạt động. Tôi đoán AlloyLookAndFeel đang gặp vấn đề về jFileChooser. – splatek

0

Thử sử dụng ctrl + enter key để chọn thư mục. Hành vi này xảy ra khi bạn đặt sang chế độ chọn tệp JFileChooser thành “tệp và direcories”:

JFileChooser fileBrowser = new JFileChooser(); 
fileBrowser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); 
Các vấn đề liên quan