그래서 내부에 JScrollPane이 있고 JScrollPane 안에 JPanel이있는 JFrame이 있습니다. JScrollPane 내부의 JPanel을 수정하는 버튼 클릭 마우스 수신기가 있습니다. 마우스 청취자의 코드는 다음과 같습니다JFrame의 크기를 변경 한 후에 만보기를 업데이트
@Override
public void mouseClicked(MouseEvent arg0) {
searchResult.updateInfo();
}
updateInfo이의 SearchResult 인 JPanel에 JPanel을 잔뜩 추가하는 방법. 이 리스너와 관련된 버튼을 클릭 한 후에는 아무 일도 일어나지 않지만 JFrame의 크기를 조정하면 뷰가 업데이트됩니다. 왜 이럴까요?
은 내가 JFrame의를 다시 칠했는데, 그것은 당신이 필요로 보이는 GUI에서 구성 요소를 추가/제거 한 후이 searchResult.removeAll(); searchResult.updateInfo(); searchResult.validate(); searchResult.repaint();
LayoutManager는 컴포넌트 배치 방법에 대한 첫 번째 렌더링시에만 요구되기 때문입니다. 컴퍼넌트에게, LayoutManager에게, 여기에 설명한대로 revalidate()를 호출하는 것에 다시 요구하도록 (듯이) 지시 할 필요가 있습니다. – ZeissS
감사합니다! 이게 내 문제를 해결했다. – aherlambang