Java GUI 개발에 어려움을 겪고 있습니다 (!). 명백한 의미를 갖는 이러한 모든 작은 것들은 작동하지 않습니다.Java의 setPreferredSize의 크기가 조정되지 않습니다. JPanel
내가 패널 내부에있는이 Graphics2D의 객체를 가지고 : 내가 뭘하려고 어디서 (이 매우 실망) 실패하고 무엇을 설명 할 것이다. 이제이 그래픽은 이미지를 그립니다. 영원히 계속 될 수 있습니다. 이 그림은 끔찍하게 확장되고 어떤 크기를 기대하는지 알지 못하기 때문에 스크롤 판 안에 넣습니다. 이제 각 pain iteration에서 JPanel의 크기를 조정하고 setPreferredSize를 더 큰 값으로 설정하여 스크롤 패널의 노브를 확장하려고합니다.
문제
: 내가 아무것도하지 않는 페인트에서 setPreferredSize를 호출 할 어떤 이유에서. 나는 그것을 패널에서 부른다. 페인트를 호출하는 함수에서 setPreferredSize를 호출하면 크기 조정 작업이 한 번만 수행됩니다!그 이유가 무엇일까요?
다른 작은 질문이 있는데, 다음과 같이 해결하고 싶습니다. 그래픽 그리기가 계속되고 크기가 커지기 때문에 스크롤 판 위치를 어떻게 향상시킬 수 있습니까? 점차적으로 그것을 증가 시키는가?
사람들, 정말 고마워요. 나는 당신이 잘못 몇 가지를 가지고 같은
와우, revalidate가 실제로 트릭을 수행했다. 건초 더미에서 바늘을 찾는 것. 스크롤바를 앞으로 나아가는 방법을 알고 있습니까? – vondip
왜이 주제에 대해 여러 가지 질문을합니까? 당신은 다른 게시물에 anser가 주어졌지만 아직 질문을 받아 들일 수는 없습니다. 물론 paintComponent() 메서드에서 setPreferredSize를 호출하면 안됩니다. 그리고 당신은 그 메소드로부터 revalidate를 호출해서는 안됩니다. 모든 질문을 한꺼번에 모았을 때 모두가 제안한 사실을 알게되고 동일한 제안을하는 데 시간을 낭비하지 않을 것입니다. 앞으로 귀하의 질문에 SSCCE를 게시하십시오. SSCCE가 무엇인지 모르는 경우 웹을 검색하십시오. – camickr
@unknown : 별도의 스레드에서 요소를 스크롤 해 봅니다. 어쩌면 유효성 검사 프로세스가 완료되지 않은 상태에서 어딘가에 설정하는 시나리오가있을 수 있습니다.이 프로세스는 scroller를 0으로 다시 설정합니다. –