2008-11-10 27 views

Trả lời

10

A Scanner có thể đọc văn bản từ bất kỳ đối tượng nào triển khai giao diện Readable.

Điều đó bao gồm BufferedReader, CharArrayReader, CharBuffer, FileReader, FilterReader, InputStreamReader, LineNumberReader, PipedReader, PushbackReaderStringReader (từ Readable javadoc). Thật không may, điều đó không bao gồm bất kỳ cửa sổ hộp thoại nào.

Cách dễ nhất để treo một cửa sổ hộp thoại để một Scanner có lẽ sẽ là xây dựng một Scanner sử dụng các nhà xây dựng mà phải mất một String, đi qua các đầu vào sử dụng từ hộp thoại trực tiếp đến Scanner.

+0

Chắc chắn sẽ có thể định cấu hình cửa sổ hộp thoại để truyền dữ liệu ném InputStream, sau đó có thể được nối với Máy quét. –

+0

Chắc chắn có thể. Có rất nhiều cách đơn giản hơn để thu hút người dùng từ một hộp thoại, mà trước đây tôi chưa bao giờ xem xét khả năng này. –

+0

Chắc chắn là đúng. Tôi nghĩ rằng gốc rễ của câu hỏi ban đầu có thể đơn giản là thiếu kiến ​​thức hoặc hiểu biết về các giải pháp thay thế. Tôi đã chắc chắn quan sát - gần đây, thậm chí - Máy quét được sử dụng như là lựa chọn đầu tiên cho đầu vào trong một tình huống mà nó rõ ràng không phải là sự lựa chọn thích hợp. –

1

Không; một Scanner có thể được tạo cho bất kỳ số lượng đầu vào nào có thể có: Tệp, InputStreams, ReadableByteChannels, Chuỗi và bất kỳ thứ gì hỗ trợ giao diện Có thể đọc được. Xem Constructor Summary.

0

Vâng, tôi đã cố gắng với ví dụ được đưa ra tại Best way to determine the total number of words of a file in Java?: chỉ cần thay thế new File("my-text-file.txt") với một biến String, và nó hoạt động ...

Vì vậy, nếu bạn nhận được nội dung văn bản của các thành phần vào một String, bạn có thể sử dụng Máy quét.

1

Bạn có thể sử dụng Máy quét trên hộp thoại hoặc nhãn bằng cách trước tiên lấy văn bản và quét.

String text = input.getText(); 
Scanner scan = new Scanner(text); 
Các vấn đề liên quan