2014-01-16 4 views
0

JTable을 디자인하려고하지만 열 이름이 표시되지 않습니다. 배열이 선언 된 이유를 모르겠습니다.이 코드 조각을 살펴볼 수 있습니까? 테이블 = 새 JTable 데이터, columnNames); 난 자바 튜토리얼에서 볼려고하지만 난 지금열 이름이 JTable에 표시되지 않습니다.

package AnimeAid; 

import java.awt.*; 
import javax.swing.*; 
import javax.swing.table.TableColumn; 


    /** 
    * 
    * @author isslam 
    */ 
    public class GuiInterface extends JFrame { 
     JTable table; 

     public static void main(String[] args) { 
     GuiInterface is = new GuiInterface("t"); 
     is.setVisible(true); 
     } 

     public GuiInterface(String title){ 
     setSize(900, 700); 
     setTitle(title); 
     setDefaultCloseOperation(GuiInterface.EXIT_ON_CLOSE); 
     String[] columnNames = {"#","Start","End","Translation column"}; 
     Object[][] data = { 
     {"1", "00:00:01,600","00:00:04,080", "Mr Magnussen, please state your\n" + 
     "full name for the record."}, 
     {"2", "00:00:04,080 ","00:00:07,040","Charles Augustus Magnussen."}}; 

     table = new JTable(data, columnNames); 
     table.setFillsViewportHeight(true); 
     table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); 
      TableColumn columnA = table.getColumn("#"); 
      columnA.setMinWidth(10); 
      columnA.setMaxWidth(20); 
      TableColumn columnB= table.getColumn("Start"); 
      columnB.setMinWidth(80); 
      columnB.setMaxWidth(90); 

      TableColumn columnC= table.getColumn("End"); 
      columnC.setMinWidth(80); 
      columnC.setMaxWidth(90); 


     JScrollPane scrollPane = new JScrollPane(table); 
     add(scrollPane); 


     //contaner part 
     Container cp = getContentPane(); 
     cp.add(table); 



     }} 

답변

5

문제는, 당신은 내용 창에 테이블을 추가 한 말씀 찾지 못했습니다. 이렇게하면 테이블 열 머리글을 표시하는 스크롤 창에서 효과적으로 제거됩니다.

다음 줄

Container cp = getContentPane(); 
    cp.add(table); 
이미 확장 이후
+0

필요 없으므로 Cont ainer cp = getContentPane(); actionLisner를 추가 한 후에도 –

+0

getContentPane을 사용할 수 있지만 Java 5부터 메소드가 컨텐트 영역에 자동으로 추가 및 제거됩니다. – MadProgrammer

0
package com.tom.mom; 
import java.awt.*; 
import javax.swing.*; 
import javax.swing.table.TableColumn; 


    /** 
    * 
    * @author isslam 
    */ 
    public class GuiInterface extends JFrame { 
     JTable table; 

     public static void main(String[] args) { 
     GuiInterface is = new GuiInterface("t"); 
     is.setVisible(true); 
     } 

     public GuiInterface(String title){ 
     setSize(900, 700); 
     setTitle(title); 
     setDefaultCloseOperation(GuiInterface.EXIT_ON_CLOSE); 
     String[] columnNames = {"#","Start","End","Translation column"}; 
     Object[][] data = { 
     {"1", "00:00:01,600","00:00:04,080", "Mr Magnussen, please state your\n" + 
     "full name for the record."}, 
     {"2", "00:00:04,080 ","00:00:07,040","Charles Augustus Magnussen."}}; 

     table = new JTable(data, columnNames); 
     table.setFillsViewportHeight(true); 
     table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); 
      TableColumn columnA = table.getColumn("#"); 
      columnA.setMinWidth(10); 
      columnA.setMaxWidth(20); 
      TableColumn columnB= table.getColumn("Start"); 
      columnB.setMinWidth(80); 
      columnB.setMaxWidth(90); 

      TableColumn columnC= table.getColumn("End"); 
      columnC.setMinWidth(80); 
      columnC.setMaxWidth(90); 


     JScrollPane scrollPane = new JScrollPane(table); 

     add(scrollPane); 



} 
    } 

과 JFrame의 더가 어디 있는지 그 위치에 있도록 JFrame의에 불과하다 클래스의 생성자에서 작업하지 않습니다 제거 영역을 가져와 컴포넌트를 넣어야합니다. 생성자에서 이러한 유형의 코딩을 수행하면 getContentPane을 가져 오지 않고 컴포넌트를 배치합니다. 생성자에서 작업하고 프레임의 일부 컴포넌트를 넣으려고 할 때 필요합니다.

관련 문제