2012-07-24 8 views
0

JPanel 내에 JTable이 있습니다. 테이블의 최대 행 수는 10입니다. 테이블 행을 기반으로 JPanel의 크기를 조정해야합니다. scrollPane을 얻지 않아야합니다.내부의 구성 요소를 기준으로 JPanel 크기 조정

간단하기 때문에 : 테이블 크기에 따라 패널의 크기를 조정해야합니다. 이것이 가능한가?

+0

가만히 있어야한다. 그 속성으로 테이블 크기를 가져 와서 그것에 따라 jpanel을 설정하십시오 .. – CyrillC

+0

Jpanel이로드 될 때 테이블이로드되지 않습니다. 사용자가 파일을 찾아보고 선택합니다. 패널이로드되는 동안 테이블이 없습니다. 사용자가 파일을 찾아보고 추가하는 경우에만 테이블을 추가합니다. – user1548065

+2

그게 LayoutManager에 대한 작업이야 - 스윙 태그 – kleopatra

답변

1

저는 jtable.getPreferredSize()이 합리적인 결과를 반환해야한다고 생각합니다. tat가 실패하면 테이블 글꼴 메트릭과 탭 기본 행 높이를 사용하여 크기를 예측할 수 있습니다. 이 경우 1.in

+2

글꼴 메트릭이 필요 없으며 rowheight는 사용자가 수행 한 작업입니다 (데이터가있는 경우와없는 경우). – kleopatra

+0

* 머리를 쓰다듬어, 네, 너의 오른쪽, 그것은 행이어야한다. 높이 & rowCount +1 전나무는 내 발가락에있다. – MadProgrammer

1

는에 행의 크기를 조정 지원하지 않습니다 기본적으로 JScrollPane

2.notice JTable를 사용하지 않고 JPanel과 배치 JTable 표준 LayoutManagersGridBagLayout 최고 vertical direction

import java.awt.BorderLayout; 
import java.awt.GridBagConstraints; 
import java.awt.GridBagLayout; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JTable; 

public class TableAndGbc { 

    public static void main(String args[]) throws Exception { 
     JPanel panel = new JPanel(new GridBagLayout()); 
     final JTable table = new JTable(10, 10); 
     GridBagConstraints gbc = new GridBagConstraints(); 
     gbc.weightx = 1.0; 
     gbc.fill = GridBagConstraints.HORIZONTAL; 
     panel.add(table, gbc); 
     JFrame frame = new JFrame(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.add(panel, BorderLayout.CENTER); 
     frame.pack(); 
     frame.setVisible(true); 
    } 
} 
관련 문제