2012-01-13 40 views
22

Tôi đang cố gắng thêm thanh cuộn vào JTextArea. Có ai đó vui lòng cho tôi biết tôi đã làm gì sai với mã bên dưới không?Thêm JTextArea có thể cuộn (Java)

JFrame frame = new JFrame ("Test"); 
JTextArea textArea = new JTextArea ("Test"); 

JScrollPane scrollV = new JScrollPane (textArea); 
JScrollPane scrollH = new JScrollPane (textArea); 

scrollV.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
scrollH.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
frame.setVisible (true); 

Cảm ơn bạn trước.

EDIT: Tôi đã sửa mã bằng lời khuyên của Adel Boutros bên dưới.

//FRAME 
JFrame frame = new JFrame ("Test"); 
frame.setSize(500,500); 
frame.setResizable(false); 
// 

//TEXT AREA 
JTextArea textArea = new JTextArea("TEST"); 
textArea.setSize(400,400);  

    textArea.setLineWrap(true); 
    textArea.setEditable(false); 
    textArea.setVisible(true); 

    JScrollPane scroll = new JScrollPane (textArea); 
    scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
      scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 

    frame.add(scroll); 
    frame.setVisible(true); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
+0

@AdelBoutros không, mã Ops là đúng bây giờ - vui lòng cập nhật câu trả lời của mình vào Ops chỉnh sửa :-) – kleopatra

Trả lời

33

Nó không hoạt động vì bạn không đính kèm thanh cuộn vào khung JFrame.

Ngoài ra, bạn không cần phải 2 JScrollPanes:

JFrame frame = new JFrame ("Test"); 
JTextArea textArea = new JTextArea ("Test"); 

JScrollPane scroll = new JScrollPane (textArea, 
    JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 

frame.add(scroll); 
frame.setVisible (true); 
+1

frame.add (cuộn, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS) ;? Phương pháp này ở đâu? –

+0

@JBNizet Tôi đã khắc phục sự cố, Cảm ơn bạn. –

+0

không - đó không phải là vấn đề (bổ sung trực tiếp là được rồi;) – kleopatra

5

Bạn không cần hai JScrollPanes.

Ví dụ:

JTextArea ta = new JTextArea(); 
JScrollPane sp = new JScrollPane(ta); 

// Add the scroll pane into the content pane 
JFrame f = new JFrame(); 
f.getContentPane().add(sp); 
5

Một ô cuộn là một container chứa thành phần khác. Bạn không thể thêm vùng văn bản của mình vào hai khung cuộn khác nhau. Khung cuộn sẽ xử lý các thanh cuộn ngang và dọc.

Và nếu bạn không bao giờ thêm ngăn cuộn vào khung, nó sẽ không bao giờ được hiển thị.

Đọc số swing tutorial about scroll panes.

2
  1. mở xem thiết kế
  2. Nhấp chuột phải để textArea
  3. mở vòm với tùy chọn
  4. chọn "... JScrollPane".
Các vấn đề liên quan