2013-05-01 2 views
0

mouseListener를 사용하여 새 Object를 만들지 않고 JLabel에 여러 문자열을 추가하고 차단 목록에 Strinsg 목록을 표시하려고하지만 항상 인라인으로 표시하려고합니다.새 개체를 만들지 않고 JLabel에 여러 문자열을 추가하는 방법

제 질문은 매번 String이 생기므로 JLabel의 새 객체를 만들어야합니까? 나는 많은 이름의 데이터베이스를 가지고 있으며 많은 JLabel을 만드는 것은 어려울 것이다.

는 여기 여기 객체 내 현재 코드 이미지 Click HERE

이다 나는 이름의 문자열을 가져옵니다 다음 JPanel을 추가 데이터베이스를 가지고있다.

x = new JLabel("name1"); 
     x1 = new JLabel("name2"); 
    x.setFont(new Font("calibri",Font.BOLD,20)); 
    x.addMouseListener(new MouseListener(){ 

     @Override 
     public void mouseClicked(MouseEvent arg0) {   
     } 

     @Override 
     public void mouseEntered(MouseEvent arg0) { 
      x.setForeground(Color.blue); 
     } 

     @Override 
     public void mouseExited(MouseEvent arg0) { 
      x.setForeground(Color.BLACK); 

     } 

     @Override 
     public void mousePressed(MouseEvent arg0) { 
      x.setForeground(Color.RED);    
     } 

     @Override 
     public void mouseReleased(MouseEvent a) { 
      x.setForeground(Color.blue); 

     }}); 
    add(x); 
    add(x1); 
+0

JList를 보거나 JLabel을 html로 설정하고 + 새 이름 – Randy

+0

을 추가하면 모든 이름을 먼저 가져올 수 있으며 linebreak와 연결하여 하나의 jlabel로 설정할 수 있습니까? – Kent

+0

하지만 mouselistener로 클릭하면 다른 이름을 가져야합니다. –

답변

3

더 나은 제어 기능을 찾고있는 것처럼 들립니다. JList는 어떻습니까?

http://docs.oracle.com/javase/tutorial/uiswing/components/list.html

+0

JList를 사용하고 있습니다. HOw는 내가 파란색 상자를 비활성화 할 수 있습니까? 문자열 목록을 클릭하셨습니까? –

+1

선택을 무시하는'ListCellRenderer'를 설정합니다. 그러나 그것은 나쁜 생각을 보인다. 사용자는 ** 선택한 목록 항목을 변경하려고합니다 **. –

1

당신은 당신의 텍스트를 설정하는 경우 그냥 HTML 태그를 사용하여 스윙 버튼, 메뉴 버튼, 라벨 등의 내부에 HTML 형식을 사용할 수 있습니다.

+0

예를 들어 [이 예] (http://stackoverflow.com/questions/7861724/is-there-some-word-wrap-property-of-jlabel-exist/7861833#7861833)를 참조하십시오. –

관련 문제