2010-03-29 3 views
1

jpanel 사용에 대한 조언을 한 후 - 저는 Java를 처음 사용하고 GUI 요소를 가지고 놀았습니다.클래스의 Jpanel 업데이트하기

내가 궁금한 점은 한 클래스에서 Jpanel을 설정 한 다음 그 컨테이너에 라벨 등을 추가하는 것이지만 다른 클래스에서 라벨을 추가하는 것입니다.

이것이 가능합니까? 또는 하나의 클래스에서 전체 GUI를 설정해야합니까? 그렇다면 다른 클래스의 기본 클래스에서 설정 한 필드를 업데이트하려는 경우 동일한 문제가 발생할 것이라고 생각합니까?

사과 여기에 설명 할 유용한 코드가 없습니다. 아이디어를 얻으려는 것뿐입니다. 앞서 나가기 전에 가능하면 해결하십시오. 그리고 이것이 가능한지 확실하지 않습니다. 모든 조언을 크게 주시면 감사하겠습니다.

감사합니다만큼 당신이 JPanel에 대한 참조를 가지고, 당신은 JPanel의에 add(JComponent comp)를 호출하여 당신이 원하는대로 GUI 요소 추가 할 수 있습니다

답변

3

.

class Panel extends JPanel{ 

    ...  

} 

class Main{ 

    public Main(JPanel thePanel){ 
     thePanel.add(new JButton("Hello")); 
    } 
} 

이 당신이 찾고 있던 무슨 :

그래서, 당신은 이런 식으로 뭔가를 할 수 있습니까?

공개 액세스 메소드가 설정된 경우 다른 클래스의 패널에 추가 된 입력란을 클래스에서 업데이트 할 수도 있습니다.

public JButton getButton(){ 
    return button; 
} 

그런 다음 당신은 다음과 같이 당신의 패널 클래스에 대한 참조로 어떤 클래스에서 버튼에 액세스 할 수 있습니다 : 당신의 panel 클래스 그래서, 당신은 방법이

panel.getButton().setText("Some text"); 

참고 버튼 수 그냥 대중에게 공개하면 간단하게 메소드를 호출 할 수 있습니다 : panel.button.setText("Some text");하지만 여기서는 언급 할 필요가없는 일반적인 좋은 OOP 관행을 위반하기 때문에 좋은 코드로 간주되지 않습니다.

+0

안녕하세요. – ivor