JPanel에서 이미지를 표시하는 스윙 응용 프로그램이 있습니다. 앱에서 이미지를 생성 할 수없는 경우 JPanel에서 이전 이미지를 제거하고 JTextField 및 메시지로 대체하려고합니다. 텍스트 필드를 추가 할 수는 있지만, 그 자체는 JPanel의 서브 클래스 인 이전 내용 위에 그려집니다. 다음은 내가 가지고있는 것입니다 :JPanel removeAll은 이전 구성 요소를 제거하지 않습니다.
private void displayMessage(String message) {
JTextField tf = new JTextField(message);
cdPanel.removeAll();
cdPanel.add(tf, BorderLayout.NORTH);//tried lots of variations, inc. no layout
cdPanel.validate();
}
어떻게하면 완전히 다시 그릴 수 있습니까?
당신이'cdPanel.revalidate를 호출 시도했다의
를(); cdPanel.validate() 대신에 cdPanel.repaint()'? 또한이 'JPanel'에 이미지가 어떻게 표시됩니까? 'JLabel'을 사용하고 있습니까, 아니면'JPanel'에서 직접 그리는 겁니까? –
@nIcEcOw 감사합니다. 완벽하게 작동합니다. 귀하의 답변을 표시 할 수 있도록 게시하십시오 :-) – jaybee
당신은 가장 환영 받고 있습니다 .-)하지만 다음 번에 정보를 최대한 제공하려고 노력하십시오. 마치 어린 아이에게 설명하는 것처럼, __ 뭐하는거야? __, __ 기대하고있는 것 __ 그리고 __ 무슨 일이 있었 니? __ 이쪽으로 대답하는 사람은 주어진 상황에 대해 더 나은 통찰력을 줄 수 있습니다 :-) –