2012-08-02 2 views
1

내 프로그램은 단어를 추측하여 무작위로 5 자의 단어를 알아 내고 동일한 문자가 몇 개인 지 (Jotto에서 벗어남) 말한 간단한 게임입니다. 이전의 추측과 결과는 JScrollPane에 표시됩니다. 나는 그들이 열에 일렬로 세우려고 노력하고있다. 추측 숫자가 두 자릿수가되면 모든 것이 문자를 이동시킵니다.JScrollPane의 열에 텍스트 줄이 름

enter image description here

나는 모노 스페이스 폰트를 사용하고 있습니다 및 및 String.format()는 열 사이의 적절한 수의 공백을 시도하고 패드하지만 여전히 다른 캐릭터보다 작은 공간을 만드는 것 같습니다. 명령 줄에 인쇄 할 때 잘 작동하고 필드 폭은 실제로는 17 자 대신 10 자 이상이지만 많은 수의 그림이 있습니다.

scroll.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 12)); 
.... 
guessList.add(0, String.format("%-17s" + result, numGuesses + ":")); 

여기 guessList는 JScrollPane에있는 JList입니다. 나는 그것이 문제의 원인이 될 수 있다고 생각하지 않지만 그것의 일부입니다.

JTable로 전환하는 것을 고려하고 있지만이 방법이 효과가 있다고 생각합니다. 그렇지 않은 경우 이유를 알고 싶습니다.

+1

JTable의 문제점은 무엇입니까 :

JTextPane jtp = new JTextPane(); jtp.setContentType("text/html"); 

각 삽입에

가, 다시 전체 테이블을 그릴? – MadProgrammer

답변

1

많은 코드를 보지 않고, 난 당신의 글꼴을 설정하는 가정하고있어 JScrollPane (코드에서 scroll 이름)에 조금씩없는 것이다 당신의 JList (코드에서 guessList 이름). 이 대신 사용해보십시오 :

guessList.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 12)); 
1

는 HTML과 함께 JTextPane가 사용 :

jtp.setText(""); 
jtp.append("<html><table>"); 
jtp.append("<tr><td>header1</td><td>header2</td><td>header3</td><td>header4</td></tr>"); 
for(String line : lines) 
    jtp.append("<tr><td> field1 </td><td> field2 </td><td> field3 </td><td> field4 </td></tr>"); 
jtp.append("</table></html>"); 
관련 문제