2017-05-03 1 views
1

코드를 변경 했으므로 설명하기가 조금 더 쉬워 졌을 것입니다. 그리고 지금 내가 풀려고했던 초기 문제입니다. 처음에는 JLabel을 작성한 다음 새로운 행을 추가 한 다음 텍스트를 추가하여 그 안에 포함 된 텍스트를 업데이트하려고합니다. 유사한 질문을 한 번 보았지만 해결책은 도움이되지 못했습니다. 이것은 시간표 응용 프로그램을위한 것입니다.이전 JLabel에 추가하는 방법

private void createAndShowGUI(String [] lessons) { 

... 

Container pane = frame.getContentPane(); 
GridBagConstraints c = new GridBagConstraints(); 
... 

label1 = new JLabel(""); 
    label1.setFont(new Font("Lucida Grande", Font.PLAIN, 10)); 
    c.fill = GridBagConstraints.HORIZONTAL; 
    c.weightx = 0.0; 
    c.gridwidth = 3; 
    c.gridx = 2; 
    c.gridy = 2; 
    pane.add(label1, c); 

for(int i=0; i<lessons.length; i++) { 
     String format = lessons[i]; 
     String [] t = format.split(","); 
     if (t[0].equals("1")) { 
      if (t[1].equals("1")) { 
       label1.setText(label1.getText() + "lecture: " + t[3] + " unit: " + t[4] + " room: " + t[2]); 

... 

다른 곳에서 쓰여진 변수를 변경하지 않으면 입력 내용이 그대로 유지됩니다. 나의 현재 입력은 lessons [0] = "1,1,1, taqi, maths, bob", lessons [1] = "1,1,2, john, physics, jim"이고 몇 가지 다른 것들이 있습니다. 그것들은 모두 같은 상황에 처하게되므로 관련이 없습니다. 다음 label1.setText 내

, 나는 label1.getText 사이에()"강의"새 줄을 추가하려합니다. 그래서 코드를 실행하면 강의, 단위 및 방이 있고, 아래에는 강의, 단위 및 방이 있습니다. 이제 출력물을 더 명확하게 보려면, t [0]은 강의 일과 t [1]은 강의 시간입니다. 같은 기간과 날에 여러 방에 여러 레슨을 표시하려고합니다.

+2

빨리는 유효한 [mcve] 문제를 보여주는 게시 할 수 있습니다. 출력이 필요한 경우 이미지 모양 또는 아스키 아트 포함 – Frakcool

+0

나는 당신의 오류를 이해하지 못했다고 생각합니다. 교수형이야? 오류 메시지가 나타 납니까? 그렇지 않은 경우 어떻게 결과가 나타 납니까? html이 따라 왔습니까? – user7185318

+0

나는 나의 질문이 분명하지 않다는 것을 깨달았다, 나는 그것을 새롭게했다, 잘하면 그것은 더 이해된다. 그리고 아니오, 오류 메시지가 나타나지 않고 컴파일되고 실행됩니다. JPanel에서 한 줄만 가져옵니다. 적어도 두 개는 있어야합니다. – Amarnath

답변

1

JLabel은 줄 바꿈 문자를 인식하지 못합니다. 텍스트는 한 행에 표시되고 새 행 문자는 무시됩니다.

label.setText("<html>line1<br>line2</html"); 

을 또는 당신은 JTextArea에를 사용하고 여러 줄의 텍스트를 추가 할 수 있습니다 :

당신은 JLabel의에서 HTML을 사용할 수 있습니다 내가 올바르게 HTML 코드를 사용하지 않은

textArea.append("\nline2"); 
+0

어떤 이유로 'label1.setText (""+ label1.getText() + "
강의 :"+ t [3] + "단위 :"+ t [4] + "룸과 같은 모양으로 코드를 추가 할 때 : "+ t [2] +" ");, 이전 행 대신에 한 행을 보여 주지만, 다른 행으로 이동하는 행 이었지만 이제는 첫 행 아래에 행이 없습니다. 변수 '제약 조건 c'와 관련이 있다면 생각하고 있었습니까? – Amarnath

0

합니다. 나중에 더 많은 텍스트를 추가하더라도 텍스트 입력의 처음 부분 (예 : JPanel의 초기 입력)에 "<html>"을 유지해야한다는 것을 알았습니다. 문자열 끝에는 "</html>"이 표시되었습니다. "<br>"은 문자열 내 어디에서나 사용할 수 있습니다.

개정 코드 : 더 나은 도움말을

JLabel label1 = new JLabel("<html>"); 

... 

for(int i=0; i<lessons.length; i++) { 
     String format = lessons[i]; 
     String [] t = format.split(","); 
     if (t[0].equals("1")) { 
      if (t[1].equals("1")) { 
       label1.setText(label1.getText() + "lecture: " + t[3] + " unit: " + t[4] + " room: " + t[2] + "<br>"); 

       ... 
      } 
     } 
} 
label1.setText(label1.getText() + "</html>"); 
+0

처음에는 임의의 위치에서 텍스트 입력 내에서 반복 루프 ,을 유지했습니다. 따라서 내 오류. – Amarnath

관련 문제