2012-04-25 39 views
5

Tôi có độ dài String mà tôi muốn hiển thị trong một JTextField. Nếu String quá dài, nó được hiển thị bên phải phần của String, chứ không phải là phần bên trái, ngay cả khi tôi sử dụng setHorizontalAlignment(JTextField.LEFT)JTextField: Cách đặt văn bản ở bên trái của JTextField khi văn bản quá dài

Ví dụ, nếu String của tôi là "JTextField dụ, văn bản này quá dài ", nó sẽ hiển thị như ...

|----------------------| 
| JTextField example ..| 
|----------------------| 

nhưng thay vào đó nó cho thấy là ...

|----------------------| 
| this text is too long| 
|----------------------| 

ai đó có thể xin đề nghị như thế nào điều này có thể được sửa chữa ed.

+8

Bạn có thể sử dụng 'setCaretPosition (0)' để thiết lập vị trí về phía bên trái của 'JTextField' nhưng trong để có thể cuộn, bạn sẽ phải thêm 'JTextField' vào' JScrollPane' – twain249

+1

@ twain249: Tại sao không đặt câu trả lời đó? Quá tốt, sẽ hoạt động như mong đợi :-) –

+1

@ twain249: Ngay cả khi không có 'JScrollPane',' JTextField' có thể cuộn bằng các phím mũi tên trái và phải; 'setScrollOffset()' cũng có vẻ đầy hứa hẹn. – trashgod

Trả lời

8

HorizontalAlignement hoạt động tốt khi kích thước của trường lớn hơn số ký tự của chuỗi, nhưng nếu nó nhỏ hơn, nó chỉ có LEFT_ALIGNMENT với setText của việc tạo, không phải với bất kỳ setText nào sau này.

Bạn có thể buộc các vị trí của caret đến sự khởi đầu của văn bản sử dụng:

myTextField.setCaretPosition(0); 
Các vấn đề liên quan