2012-01-13 2 views
1

JPanel이 3 개인 JFrame이 있습니다. 첫 번째 JPanel에는 JTextField와 JButton이 있습니다. JButton이 눌려지면 두 번째 JPanel의 JLabel은 JTextField에서 텍스트 입력을 표시 할 수 있습니다. 그런 다음 세 번째 JPanel은 두 번째 JPanel의 JLabel에 따라 배경을 변경합니다.여러 JPanels간에 메시지를 전송하는 방법은 무엇입니까?

내 질문은 : 첫 번째 JPanel에서 JTextField의 내용에 액세스 한 다음 다른 두 JPanel로 전송하는 방법은 무엇입니까?

+2

아마도 올바른 범위의 변수를 사용하십시오. – simchona

답변

0

첫 번째 텍스트 필드의 데이터를 변수에 저장합니다. 단추를 누를 때 actionPerformed 메서드에서이 작업을 수행 할 수 있습니다.

다음은 setText 함수를 사용하여 JLabel의 텍스트를 변경합니다.

마지막으로 setBackground 메서드를 호출하여 JPanel 색을 변경합니다.

String text = textField.getText(); 
label.setText(text); 
myJPanel.setBackground(Color.white); 
1

그래서 당신은 세 개의 패널이 있습니다

JPanel panel1; 
JTextField textFieldOnFirstPanel; 
JButton buttonOnFirstPanel; 
JLabel labelOnSecondPanel; 
JPanel panel2; 
JPanel panel3; 

이 모든 세 개의 패널과 주요 객체의 모든 구성 요소에 대한 참조를 유지를,이는 JFrame의 개체 자체가 될 수 있습니다. 이벤트에 따라 이러한 구성 요소를 적절하게 업데이트하십시오.

0

두 옵션에 @Hovercraft Full Of Eels 모든 의견을 읽고하시기 바랍니다 가장 깨끗한 방법에 목표 달성 클래식 Observer/Observable 패턴에 의해 활성화 된 변경 사항으로부터 알림을 수신 한 후 필드 텍스트의 getter에 액세스합니다. 이 패턴에 대한 자세한 내용은 여기를 참조하십시오. http://en.wikipedia.org/wiki/Observer_pattern 내 2 개 제롬

+0

가능한 경우 자세한 코드 예제를 제공하십시오. 감사. – sluk

관련 문제