2017-11-25 33 views
1

나는 라디오 방송국에 정보를 표시해야하는 프로그램을 작성 중이고 사용자가 원하는 채널의 이미지를 클릭하여 해당 정보를 얻길 원합니다.JPanel in another JPanel : 스윙

채널은 그리드 레이아웃으로 upp로 설정되지만 각 그리드 내부에서 원하는 것은 채널 이미지와 이미지 바로 아래의 채널 이름입니다. 그래서 나는 GridLayout 안에 BoxLayout이 트릭을 할 것이라고 생각했지만 내가 원하는 것처럼 보이는 GUI를 얻지는 못한다.

jf = new JFrame(); 

     jf.setTitle("tutorial"); 
     jf.setSize(500, 500); 
     jf.setMinimumSize(new Dimension(500, 500)); 
     jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 

     JPanel jPanel = new JPanel(); 
     jPanel.setLayout(new BoxLayout(jPanel,BoxLayout.Y_AXIS)); 
     JButton jButton1 = new JButton("first"); 
     JButton jButton2 = new JButton("second"); 
     jPanel.add(jButton1); 
     jPanel.add(jButton2); 
     jf.add(jPanel); 

     grid = new JPanel(); 
     grid.setLayout(new GridLayout(3,4,5,10)); 
     grid.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 


     JPanel jPanel2 = new JPanel(); 
     jPanel.setLayout(new BoxLayout(jPanel,BoxLayout.PAGE_AXIS)); 
     JButton jButton = new JButton("first"); 
     JButton jButton12 = new JButton("second"); 
     jPanel.add(jButton); 
     jPanel.add(jButton12); 
     grid.add(jPanel); 
     grid.add(jPanel2); 

     jf.add(grid); 

두 개의 버튼이있는 상자 레이아웃을 그리드 레이아웃에 배치하려는 시도의 샘플 코드입니다.

한 레이아웃을 다른 레이아웃에 적용하려면 어떻게해야합니까?

+1

1) 더 도움이 필요한 빨리, 게시 A [MCVE] 또는 [짧은, 콘도, 올바른 예 (HTTP ://www.sscce.org/). 2) ASCII 아트 또는 GUI의 * 의도 된 * 레이아웃의 간단한 그림을 최소한의 크기로 제공하고, 크기를 조정할 수 있으면 더 많은 너비와 높이로 추가 공간을 사용하는 방법을 보여줍니다. 3) * "내가 원하는 것처럼 GUI가 보이지 않습니다."* 어떻게 보이나요? 스크린 샷이 편리 할 것입니다. 당신은 충분한 담당자가없는 경우. 스크린 샷을 [edit]로 포함 시키려면 이미지 공유 사이트에 업로드하고 링크를 제공하십시오. –

+1

'각 격자 안쪽에 채널의 이미지와 채널 이름이 이미지 아래에 있습니다 '- 이미지와 텍스트를 동일한 버튼에 추가 할 수 있습니다. API를 읽으면 이미지와 관련된 텍스트의 위치를 ​​설정할 수있는 메소드가 있습니다. – camickr

답변

1

재 :

[...] 내가 무엇을 각 격자 안에 원하는 것은 채널의 영상과 오른쪽 영상에서 채널의 이름을 모두입니다.

How to Use Buttons, Check Boxes, and Radio Buttons 참조 :

enter image description here

ImageIcon middleButtonIcon = createImageIcon("images/middle.gif"); 

... 

b2 = new JButton("Middle button", middleButtonIcon); 
b2.setVerticalTextPosition(AbstractButton.BOTTOM); 
b2.setHorizontalTextPosition(AbstractButton.CENTER);