2017-01-03 2 views
-1

JTabbedPane을 사용하여 일부 테이블 (각 Tab에 하나의 테이블)을 표시하려고합니다. 쉽게 알 수 있습니다. JTabbedPane을 만들고, scrollPanes (탭을 나타냄)를 넣은 다음 scrollPanes에 테이블을 추가하기 만하면됩니다. 내 문제는 scrollPanes에서 테이블 만 추가 할 수 있으며 텍스트 상자, 라디오 버튼 및 레이블을 추가해야한다는 것입니다.JTabbedPane의 scrollPane 테이블

My table without textbox, radiobuttons and labels

나는 그것을 할 수있는 다른 대안이 있는지 알고 싶습니다.

+0

장소를 생성하기위한 jform의 desiner을 사용하고 JScrollPane의 내부에 JPanel을 배치 할 수 있습니다. – Compass

+1

@Compass가 말했습니다. JScrollPane에 JTable 만 있으면 좋겠지 만 중앙 위치에서 BorderLayout을 사용하는 다른 JPanel에 JScrollPane을 배치하고 다른 구성 요소를 다른 JPanel에 추가 한 다음 JPanel을 기본 JPanel에 추가 한 다음 그 것을 JTabbedPane에 전송합니다. 핵심은 여기에 있습니다 : ** 네, 당신은 중첩 할 수 있고 JPanels를 중첩 할 수 있어야하고, 각자 자신의 레이아웃 매니저를 사용할 수 있습니다. ** 그냥 그걸 가지고 노는 것과 함께 올 수있는 것을보십시오. –

+0

@ Hovercraft 가득 차있는 Eels 테이블을 JPanel에 배치하면 열 이름을 다시 나타내는 첫 번째 행을 볼 수 없습니다 :) – Marius

답변

0
public static void main(String[] args) { 

    JFrame Frame = new JFrame(); 
    JTabbedPane jTabbedPane1 = new javax.swing.JTabbedPane(); 
    JScrollPane jScrollPane1 = new javax.swing.JScrollPane(); 
    JPanel jPanel1 = new javax.swing.JPanel(); 
    JButton jButton1 = new javax.swing.JButton(); 
    JButton jButton2 = new javax.swing.JButton(); 
    JScrollPane jScrollPane2 = new javax.swing.JScrollPane(); 
    JTable jTable1 = new javax.swing.JTable(); 

    Frame.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

    jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, javax.swing.BoxLayout.Y_AXIS)); 

    jButton1.setText("jButton1"); 
    jPanel1.add(jButton1); 

    jButton2.setText("jButton2"); 
    jPanel1.add(jButton2); 

    jTable1.setModel(new javax.swing.table.DefaultTableModel(
      new Object[][]{ 
       {null, null, null, null, null, null, null, null, null, null, null, null}, 
       {null, null, null, null, null, null, null, null, null, null, null, null}, 
       {null, null, null, null, null, null, null, null, null, null, null, null}, 
       {null, null, null, null, null, null, null, null, null, null, null, null}, 
       {null, null, null, null, null, null, null, null, null, null, null, null}, 
       {null, null, null, null, null, null, null, null, null, null, null, null}, 
       {null, null, null, null, null, null, null, null, null, null, null, null}, 

      }, 
      new String[]{ 
       "Title 1", "Title 2", "Title 3", "Title 4" 
      } 
    )); 
    jScrollPane2.setViewportView(jTable1); 

    jPanel1.add(jScrollPane2); 

    jScrollPane1.setViewportView(jPanel1); 

    jTabbedPane1.addTab("tab2", jScrollPane1); 

    Frame.setContentPane(jTabbedPane1); 
    Frame.setVisible(true); 
} 
0

당신이 이해한다면 탭에 scrollPane을 넣고 패널에 을 추가하고 필요한 컨트롤과 테이블을 패널에 추가 할 수 있습니다.

image

에 같은

당신은 JPanel의 위에 모든 요소 코드

jTabbedPane1 = new javax.swing.JTabbedPane(); 
    jScrollPane1 = new javax.swing.JScrollPane(); 
    jPanel1 = new javax.swing.JPanel(); 
    jButton2 = new javax.swing.JButton(); 
    jScrollPane2 = new javax.swing.JScrollPane(); 
    jTable1 = new javax.swing.JTable(); 

    jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, javax.swing.BoxLayout.Y_AXIS)); 

    jButton2.setText("jButton2"); 
    jPanel1.add(jButton2); 

    jTable1.setModel(new javax.swing.table.DefaultTableModel(
     new Object [][] { 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null}, 
      {null, null, null, null} 
     }, 
     new String [] { 
      "Title 1", "Title 2", "Title 3", "Title 4" 
     } 
    )); 
    jScrollPane2.setViewportView(jTable1); 

    jPanel1.add(jScrollPane2); 

    jScrollPane1.setViewportView(jPanel1); 

    jTabbedPane1.addTab("tab1", jScrollPane1); 
+0

나는 이미 이것을 시도했지만 작동하지 않았다. 그러나 코드가 작동하지만 jTabbedPane1을 프레임에 추가하십시오. 테이블이 더 이상 보이지 않는 것을 볼 수 있습니다. Eclipse에서 jform 디자이너를 이미 사용했습니다. – Marius

+0

테이블 자체가 표시되지 않습니까? – Abojemyeg

+0

테이블 자체가 표시되지 않습니다. – Marius