2014-06-22 3 views
0

내가 JScrollPane의에 싸여 JTextArea에, 그리고 JScrollPane의 전체 해시 MAP있어 감안할 때 : 나는 내부 JTextArea에와 외부가 JScrollPane의 스타일을 어떻게대상 JTextArea에

protected static JTextArea jta1 = new JTextArea(); 
protected static JScrollPane jts1 = new JScrollPane(jta1, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); 

public static Hashtable<Integer, JScrollPane> textAreas = new Hashtable<Integer, JScrollPane>(); 

textAreas.put(1, jts1); 

을 만 갖는 해시 맵에서 동일한 for 루프는 JScrollPane의 포함?

for (JScrollPane item : textAreas.values()) { 
     item.setPreferredSize(new Dimension(540, 200)); // This is JScrollPane 
     item.setLineWrap(true); // This is the JTextArea attribute <---- 
     item.setBorder(BorderFactory.createMatteBorder(1, 1, 1, 1, Settings.SITE_ORANGE)); // This is JScrollPane  
    } 

I는 JTextArea에 안으로 배치되는 외측 JScrollPane의 타겟팅 아무런 문제가 없지만, item.setLineWrap(true) 구체적으로 어떻게 C 내측 JTextArea에 적용 내가 선택한거야? JTextArea ((JTextArea) item).setLineWrap(true);에서 전송할 수 없습니다. 먼저 시도했습니다.

+0

각 최대 키 값을 기반으로 보일 필요가 ... – MadProgrammer

답변

2

JScrollPane의 getViewport() 메소드를 사용하여 뷰포트에 액세스 한 다음 반환 된 JViewport에서 getView() 메소드를 호출해야합니다. 반환되는 Component는 JTextArea 여야합니다. 호출 할 수 있으려면 JTextArea로 구성 요소를 캐스팅해야합니다. 거기에 setLineWrap

((JTextArea에) item.getViewport().의 getView()). setLineWrap (참)

+0

아 하! - 대단히 감사했습니다. – Crizly