2010-02-19 3 views
9

:JTable의 헤더를 설정하는 방법? 아래 예제 코드와

String column_names[]= {"Serial Number","Medicine Name","Dose","Frequency"}; 
table_model=new DefaultTableModel(column_names,3); 
table=new JTable(table_model); 

우리는 위의 코드와의 COLUMN_NAMES에서 같은 열 이름을 가진 헤더를 설정하고 싶지만 작동하지 않습니다. 테이블이 생성 되더라도 머리글은 표시되지 않습니다.

+2

지침에 따르면 '_'대신 camelCase를 사용해야합니다 : tableModel 및 columnNames. http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html을 참조하십시오. – Fortega

답변

25

헤더를 보려면 JScrollPane에 테이블을 놓아야합니다.

panel.add(new JScrollPane(table)); 

또는 당신은 특별히 당신이 정말 스크롤을하지 않으려면 패널에하는 tableHeader를 추가 (하지만 : 일반적으로이 동작을 원하지 않는) : 수

panel.add(table.getTableHeader(), BorderLayout.NORTH); 
panel.add(table, BorderLayout.CENTER); 
1

을 JTable의 API를 읽고 실습 예제는 "테이블 사용 방법"에 대한 스윙 튜토리얼의 링크를 따라 가십시오. 트릭은 JScrollPane에 테이블을 추가하는 것입니다.

2

See here for more information about JTables and TableModels

JTable의 헤더만을 표는 어쨌든 무엇을 원하는 보통 스크롤 창에있을 때 표시 얻을. 어떤 이유로, 당신은 스크롤 창없이 테이블을 표시해야하는 경우, 당신은 할 수 있습니다 :

panel.setLayout(new BorderLayout()); 
panel.add(table, BorderLayout.CENTER); 
panel.add(table.getTableHeader(), BorderLayout.NORTH); 
1
MessageFormat header = null; 

if (this.headerBox.isSelected()) 
{ 
    header = new MessageFormat(gradesLabel.toString()); 
} 

MessageFormat footer = null; 

if (this.footerBox.isSelected()) 
{ 
    footer = new MessageFormat(this.footerField.getText()); 
} 

boolean fitWidth = this.fitWidthBox.isSelected(); 
boolean showPrintDialog = this.showPrintDialogBox.isSelected(); 
boolean interactive = this.interactiveBox.isSelected(); 

JTable.PrintMode mode = fitWidth ? JTable.PrintMode.FIT_WIDTH : 
    JTable.PrintMode.NORMAL; 
try 
{ 
    boolean complete = this.gradesTable.print(mode, header, footer, 
    showPrintDialog, null, 
    interactive, null); 

    if (complete) 
    { 
    JOptionPane.showMessageDialog(this, 
     "Printing Complete", 
     "Printing Result", 
     1); 
    } 
    else 
    JOptionPane.showMessageDialog(this, 
     "Printing Cancelled", 
     "Printing Result", 
     1); 
} 
catch (PrinterException pe) 
{ 
    JOptionPane.showMessageDialog(this, 
    "Printing Failed: " + pe.getMessage(), 
    "Printing Result", 
    0); 
} 

사실 Jtable 설명 개체를 전달하는 데 사용됩니다 인쇄() menthod, 하나 개 방법이있다 머리말과 꼬리말은 인쇄 할 매개 변수로 여기 headerBox는 내 프로그램 에서 만든 Jcheckbox이며 일부 Jlabels도 있습니다. 필요 없다면이 코드에서 해당 코드를 제거하고 프로그램을 실행하십시오.

관련 문제