2013-03-18 4 views
2

내 프로그램이 MigLayout GUI를 만들고 여러 개의 JLabel이 생성시 이미지가 제공됩니다. 여기에서 최종 결과가 지금 무엇을 볼 수 있습니다.MigLayout JLabels 및 크기 고정

http://i.imgur.com/evI0sYT.jpg

을 이미지가 너무 큰 그들이에 포함하고있는 JPanel의 크기 가서 그것은 단순히 크기로를 만드는 것을 원본 이미지가 표시되었다가 표시되지만, 분명히 문제입니다. GUI에서 모든 구성 요소에 맞게 크기를 조정할 수있는 방법이 있습니까?

처음에는 파란색 부분이 그렇게 이동하지 않도록하고 싶습니다. 높이로 설정 한 크기로 유지하고 싶습니다. 또한 원래 이미지의 종횡비를 유지하면서 이미지를 최대한 크기로 가져 가고 싶습니다.

JLabel의 크기와 기본 크기를 설정해 보았습니다. MigLayout을 사용하여 JLabel을 추가하라는 명령을 내렸을 때 매개 변수를 지정해주었습니다. 저는 JLabel을 확장하고 그것을 고치기위한 것을 쓰는 것에 대해 즐겁게 생각합니다. 페인트를 덮어 쓸 수는 있지만 실제로 무엇을해야하는지 확신 할 수 없습니다.

JPanel jpCards = new JPanel(new MigLayout("insets 0, gapx 0, gapy 0, wrap 7", "grow")); 

내 카드는 그냥 그들이 표시 한 크기의 사진을 제공하여 추가 매개 변수없이 추가 및 생성되고 다음과 같이

내 JPanel의 설정됩니다.

명확하게하기 위해 나중에 마우스 수신기가 있기 때문에 내부에 포함 된 내용뿐만 아니라 실제 JLabel 크기를 변경해야합니다. 이미지가 변경된 경우 마우스 리스너가 JLabel 내부에서 자신을 감지 할 때 문제가 발생합니다.

답변

1

JLabel을 만들기 전에 아이콘 크기를 변경하여이 문제를 해결했습니다.

나는 Java에서 이미지의 일종이 주어진 JLabel을 만들면 JLabel의 크기가 이미지의 크기와 일치한다는 것을 알게되었습니다. 따라서 원본 이미지가있는 JLabel을 만드는 대신 화면의 크기를 사용하여 크기를 조절 한 다음 JLabel을 만듭니다.

사용자가 화면의 크기를 조정하고 이미지의 크기를 조정할 수 있기를 원하기 때문에 아직해야 할 일이 있습니다. 크기를 조정할 수있는 방법을 알아 내려면 시간을 할애해야하지만 큰 문제는 아닙니다.