2011-02-28 5 views
1

java로 프로그램 GUI를 작성하고 있습니다. 내 JFrame의 ContentPane으로 JLayeredPane을 배치하고 싶습니다. 내 JLayeredPane에는 두 개의 레이어가 있습니다. 한 레이어는 Canvas (캔버스 1)이고 다른 레이어는 JPanel (jPanel5)입니다. Netbeans IDE를 사용하면이 코드가 생성됩니다.Java : JLayeredPane 크기 조정 문제

canvas1.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); 
    canvas1.setBounds(0, 0, -1, -1); 
    jLayeredPane1.add(canvas1, javax.swing.JLayeredPane.PALETTE_LAYER); 

    jPanel5.setBounds(0, 0, 670, 550); 
    jLayeredPane1.add(jPanel5, javax.swing.JLayeredPane.DEFAULT_LAYER); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 670, Short.MAX_VALUE) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 553, Short.MAX_VALUE) 
    ); 

pack();

내 프로그램을 실행할 때 이상한 이벤트가 발생했습니다! 내가 jerame의 크기를 바꿀 때; 메인 JLayeredPane의 사이즈는 변경되지 않았습니다. 구성 요소에 diffrerent backGround 색상을 사용했는데 JLayered의 크기가 영구적이지만 영구적 인 크기로 세로로 설정할 수 있습니다. JFrame의 크기를 재조정 할 수 있지만 주 jLayeredPane의 크기는 permamnet입니다.

jLayeredPane의 크기를 JFrame으로 변경하려면 어떻게해야합니까?!

enter image description here

답변

1

BorderLayout를 대신 당신이 지금 사용하고있는 GroupLayout의 기본을 사용해보십시오 감사합니다. 단순히 GroupLayout을 만들기 시작 라인의 그룹을 주석이 줄을 추가 :

getContentPane().add(jLayeredPane, BorderLayout.CENTER); 

.add() 메소드의 BorderLayout.CENTER의 매개 변수는 주어진 위젯이를 채우려는 BorderLayout를 관리자에게 알려줍니다를 창 중앙.

+0

고맙습니다.하지만이 코드를 netbeans의 생성 된 코드에 추가하는 것은 impssible입니다. JLayeredPane 프로퍼티로 어떻게 설정할 수 있습니까? – sajad

+0

Netbeans을 사용하여 코드를 생성하지 마십시오. Swing 자습서 (http://download.oracle.com/javase/tutorial/uiswing/TOC.html)에는 IDE에 의존하지 않도록 자신 만의 GUI를 만드는 방법에 대한 많은 예제가 있습니다. – camickr

+0

프로젝트를 수행 한 후에는 IDE에서 소스를 가져 와서 IDE에서 발생하는 모든 문제를 해결할 수 있습니다. – Raceimaztion

1

JFrame과 함께 JLayeredPane을 변경할 수 있습니다. (NetBeans IDE) 디자인 모드에서 JLayeredPane을 마우스 오른쪽 단추로 클릭 한 다음 팝업 메뉴에서 "자동 크기 조정"위로 마우스를 가져간 다음 세로 및 가로를 선택하십시오. 그런 식으로, JLayeredPane의 사이즈가 JFrame에 상대적으로 변경됩니다.