2014-12-30 2 views
0

내가 한 일에 업데이트를 쓰는 스윙 프로그램을 만들고 싶습니다. 모든 정보는 편집 불가능한 JTextField에 씁니다. 예를 들어JTextField에서 입력 할 새 줄을 어떻게 만들 수 있습니까?

는 :

You have changed the text to BLUE. 
You have changed the text to RED. 

문제는 내가 두 줄이 분리 할 수 ​​없다는 것입니다.

You have changed the text to BLUE. You have changed the text to RED. 

는 내가 시도한 것은 이것이다 :

는 내가 얻을 것이 이것이다 (이 작동하지 않습니다)

TF_BetInfo.setText(TF_BetInfo.getText() + "\nYou have changed the text to BLUE."); 
TF_BetInfo.setText(TF_BetInfo.getText() + "\nYou have changed the text to RED."); 
+0

일반적인 Java 명명법 (이름 지정 규칙, 예 :'EachWordUpperCaseClass','firstWordLowerCaseMethod()','firstWordLowerCaseAttribute'가 'CONSTANT'가 아닌 경우)을 배우고 일관되게 사용하십시오. –

+0

그래서 "TF_betInfo"를 쓰거나 "TF"를 변경해야합니까? 오류를 적어주십시오. – vincentes

+0

글쎄 'TF'는 아마도 텍스트 필드를 의미 할 것이고, 이름에 컨트롤 유형을 포함하지 않는 것이 가장 좋은 것으로 간주됩니다. 내가 작동하지 않는다는 것을 알게 된 곳에서 레이블과 같은 이름의 필드 (예를 들어)를 지정해야한다면'variableLabel'과'variableField'를 사용할 것입니다. 정보가'BetInfo'이므로 나는 그것을 앞쪽으로 옮기고'Bet'의 경우를'bet'으로 놓습니다. 그래서 텍스트 필드 나 텍스트 영역에 대해서는'betInfoField'가되고, 그것을 설명하는'JLabel'에 대해서는'betInfoLabel'이됩니다. –

답변

3

당신은 당신이 그 목적을 위해 JTextArea에 사용할 수 JTextField를 여러 라인을 가질 수 없습니다, 그리고 코드는 너무 다른 많은되지 않을 것, 당신은 여전히 ​​동일한 코드를 사용하거나 그냥

TF_BetInfo.append("\nyou have ...... "); 
을 할 수

여기서 TF_Betinfo는 JTextField가 아닌 JTextArea입니다.

2

당신은이에 대한 JTextField을 사용할 수 없습니다. JTextField은 sinle-line edit control입니다. 그래서 한 줄로 모든 출력을 얻었습니다.

편집 할 때 여러 줄을 인쇄하려면 JTextArea을 사용하십시오. 귀하의 경우에는 jTextArea.append(string)을 사용할 수 있습니다 (참고 : jTextAreaJTextArea 클래스의 객체이고 stringString 클래스의 객체 임).

+0

좋은 편집. 소음을 삭제했습니다. –

0

당신 실제로 JTextField를에 여러 줄을 사용할 수 없습니다,하지만 당신은 무엇을 할 수 있는지하는 JTextArea에 원하는 크기의 사용 후 다음 사용

yourJTextArea.setLineWrap(true); 

이 의지 은 자동으로을 감지합니다. JTextArea가 다른 라인을 사용해야 할 때, 매우 유용하고 유용합니다. 코드 라인 하나만 있으면됩니다.

JTextArea에 더 유연하지만 당신이 정말로 원하는 경우 유연성에 대한 JTextPane가 또는 JEditorPane의, 당신은 URL이, 인터넷 페이지 및 당신의 마음에 오는 모든 것을 보여줄 수 읽기.

관련 문제