2017-01-03 4 views
-1

JTabbedPaneを使用していくつかのテーブル(各タブに1つのテーブル)を表示したいとします。 実現するのはかなり簡単です:JTabbedPaneを作成し、いくつかのscrollPanes(タブを表す)を配置し、スクロールパネルにテーブルを追加するだけです。 私の問題は、scrollPanesではテーブルのみを追加でき、テキストボックス、ラジオボタン、ラベルも追加する必要があることです。JTabbedPaneのscrollPaneのテーブル

My table without textbox, radiobuttons and labels

私はそれを行うには他の選択肢があるかどうかを知りたいのです。

+0

場所のJPanelの上にすべての要素を生成するためのjformのdesinerを使用し、JScrollPaneの内部でのJPanelを配置することができます。 – Compass

+1

@Compassは言うとおり。おそらく、JScrollPaneのJTableだけが必要ですが、JScrollPaneを中央のBorderLayoutを使用する別のJPanelに配置し、他のコンポーネントを他のJPanelに追加してJPanelに追加してから、追加しますそれをJTabbedPaneに渡します。キーはここにあると考えました:**はい、あなたはJPanelを入れ子にすることができます。そして、それぞれが独自のレイアウトマネージャを使用することができます。**ちょうどそれと遊んで、あなたが思いつくことができるものを見てください。 –

+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

あなたが理解している場合は、スクロールペインをタブに配置し、それにパネル を追加して、必要なコントロールとテーブルをパネルに追加することができます。

この image

上のような

、あなたはコード

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