2011-12-31 3 views
0

자바 앱을 사용하여 게임을 생성한다고 가정합니다. JPanel에 이미지가있는 JLabel이 몇 개 있으며이 JLabel을 JPanel에서 다른 JPanel로 연결하고 싶습니다. 그렇게 할 수 있습니까? Jlabel이 클릭 될 때와 마찬가지로 다른 페이지가 나타납니다.한 패널 링크에서 다른 패널로 연결되는 JLabel JPanel

미리 감사드립니다.

+4

"링크"는 무엇을 의미합니까? – Paul

답변

2
  • Cursor.HAND_CURSOR에 레이블의 커서를 설정합니다.
  • 각 레이블에 MouseListener을 추가하십시오.
    • mouseEntered()에서 링크 텍스트의 색을 다른 색으로 설정하여 브라우저와 같이 강조 표시합니다.
    • mouseClicked()에서 CardLayout의 카드를 변경하여 다른 구성 요소를 표시하거나 다른 구성 요소를 표시하십시오.
2

스윙 구성 요소는 단일 상위 항목 만 가질 수 있으므로 공유 할 수 없습니다.

그러나 라벨의 Icon을 다른 Swing 구성 요소와 공유 할 수 있습니다. 따라서 MouseListener에서 클릭 한 레이블의 getIcon() 메서드를 사용할 수 있습니다. 그런 다음 setIcon(...) 메서드를 사용하는 두 번째 패널에 다른 구성 요소에 아이콘을 추가 할 수 있습니다.

0

더 구체적이어야합니다. 사용중인 기술과 같은 것을 포함시켜야합니다. 이것은 웹 기반 프로젝트입니까? 독립형 응용 프로그램입니까? 그리고 구체적으로 당신이하려는 일. 그리고 "링크"는 의미가 너무 넓습니다. 그것은 많은 다른 것들을 의미 할 수 있습니다. 적절한 도움을 얻으려면보다 구체적이어야합니다.

+0

답변은 답변이 아닙니다. 그것은 의견입니다. – Paul

+0

평판이 50보다 적은 @Paul 사용자는 어디서나 의견을 게시 할 수 없습니다. – mKorbel

+0

아, 고마워요. @mKorbel – Paul

0

JLabel을 싱글 톤 클래스로 공유 할 수 있습니다. 당신의 다른 JPanel의 클래스에서

public class SharedJLabel { 
    private static JLabel imageLabel; 
    static { 
     //init the imageLabel here 
    } 

    public static JLabel getImageLabel() { 
     return imageLabel; 
    } 
} 

, 당신은 단지 공유의 JLabel을 사용하려면이 클래스를 사용할 수 있습니다 :

SharedJLabel.getSharedImageLabel(); 
관련 문제