2012-07-15 2 views
0

netbeans를 사용하여 Jtable을 사용하여 데이터베이스의 내용을 표시 할 수 있었지만 문제는 파일을 실행할 때 Jtable의 내용을 전부는 아니지만 indivdual 기록은 완전히 나타납니다. 일부 열에는 몇 단어가 아닌 단락 항목이 있기 때문에netbeans에서 Jtable의 모든 내용을 표시하는 방법

+0

정확히 무엇이 문제입니까? 다중 행 텍스트는 표 셀에 표시되는 데 적합하지 않습니다. –

답변

2

줄 번호 &은 jtable에서 사용하는 텍스트 높이를 알아야합니다. 여기에서 행 높이를 설정할 수 있습니다 (테이블 또는 개별 행에 대해 전역으로).

그러면 다중 행 내용을 표시 할 수있는 표 셀 렌더러가 필요합니다.

요구 사항에 따라 & 셀의 한 줄 요약을 표시하는 것이 좋습니다 (툴팁의 크기에 따라 전체 내용을 표시 할 수 있음) 또는 편집 할 수없는 팝업 창이 나타납니다 텍스트 구성 요소

UPDATE 짧은 코멘트

죄송합니다, 내 아이 패드였다.

UI의 상태에 따라 두 가지 방법이 있습니다. JTables 그래픽 컨텍스트에서 FontMatrics에 대한 참조를 가져올 수 있습니다. JTable로 실현 된 경우에만

FontMetrics fm = myTable.getFontMetrcis(myTable.getFont()); 
int height = fm.getHeight(); 

이 예, 물론, 당신이 JTable가 같은 폰트를 사용하는 가정 (화면에 렌더링) 작동합니다. 그렇지 않은 경우 올바른 글꼴을 제공해야합니다.

UI가 아직 실현되지 않은 경우 글꼴 메트릭을 추출한 호환 이미지를 만들어야합니다. 이 그래픽 구성 및 장치를 처리하기 시작 이것은 당신이 글꼴의 높이를 갖게되면, 당신은 텍스트의 높이를 계산할 수을 가정한다

BufferedImage img = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration().createCompatibleImage(1, 1, Transparency.TRANSLUCENT); 

Graphics2D g2d = img.createGraphics(); 
FontMetrics fm = g2d.getFontMetrics(font); 
int height = fm.getHeight(); 
g2d.dispose(); 

... 조금 더 복잡하다 텍스트가 줄로 나뉘어집니다 (또는 줄을 나눌 수 있습니다). 이제는 그렇지 않은 경우 (또는 자신의 단어/줄 바꿈을 제공하려는 경우), 이것은 점점 더 복잡해집니다.

당신은 (당신이 필요로하는 당신이 그룹에 텍스트를 분할하려면이 옵션을 사용할 수 있습니다) 힌트의 Graphics2D를 사용하여 텍스트를 렌더링하는 방법은 여기를 http://docs.oracle.com/javase/tutorial/2d/text/drawmulstring.html 확인할 수 있습니다

또한 대한 좋은 아이디어를 보여줍니다 http://www.jroller.com/santhosh/entry/multiline_in_table_cell_editing1을 확인 할 수 있습니다 다중 행 편집기.

+0

위 정보를 얻는 방법을 모르기 때문에 자세히 설명해 주시겠습니까? –

+1

['TablePopupEditor'] (http://stackoverflow.com/a/3591230/230513) 좋은 보완 편집기를 만들 것입니다. – trashgod

+0

Componet.getGraphics(). getFontMetrics (font) – MadProgrammer

관련 문제