2017-03-06 11 views
0

私は "JTable"を開始しようとします。フォームデザイナーを通してすべての要素を追加し、GUIの主な機能でそれらを開始しました。Jtableがロードされない

テーブルは "JScrollPanel"内に配置され、 "DefaultTableModel"を使用してヘッダーと行を追加します。

私が何をしたとしても、ヘッダーや行を表示するためのテーブルを作成することはできません。
私はここで何が欠けていますか?

class Controls extends JPanel{ 
    private JButton compileButton; 
    private JPanel controls; 
    private JTabbedPane tabbedPane1; 

    private JButton insertButton; 
    private JTable insertedFilesTable; 
    private JScrollPane insertedFilesViewport; 
    private JPanel minify; 
    private JFileChooser insertChooser; 

    public Controls() { 
     insertChooser = new JFileChooser(); 

     compileButton.addActionListener(new ActionListener() { 
      @Override 
      public void actionPerformed(ActionEvent e) { 
       initCompile(); 
      } 
     }); 

     insertButton.addActionListener(new ActionListener() { 
      @Override 
      public void actionPerformed(ActionEvent e) { 
       buttonActionPerformed(e); 
      } 
     }); 
    } 

    public void main() { 
     JFrame frame = new JFrame("Controls"); 

     frame.setLayout(new SpringLayout()); 
     frame.setContentPane(new Controls().controls); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     DefaultTableModel model = new DefaultTableModel(); 

     model.addColumn("Files"); 
     model.addColumn("Status"); 

     insertedFilesTable = new JTable(model); 

     insertedFilesViewport = new JScrollPane(insertedFilesTable); 
     insertedFilesViewport.setViewportView(insertedFilesTable); 
     insertedFilesTable.setFillsViewportHeight(true); 

     String[] data = {"test","test"}; 
     model.addRow(data); 

     frame.add(insertedFilesViewport); 

     frame.setSize(500,500); 
     frame.setVisible(true); 
    } 

    private void buttonActionPerformed(ActionEvent evt) { 
     insertChooser.showSaveDialog(this); 
    } 
} 

My result

+0

完全なコードを含めることができますか? – frederick99

+0

@ frederick99クラス全体を追加します –

+1

あなたの画像はあなたのコードと一致しません。あなたのコードはJFrameにJScrollPaneを直接追加しますが、あなたのイメージはJTabbedPaneにそれを明確に示します。あなたの質問を編集し、あなたが実際に使っているコードを表示してウィンドウを構築してください。あなたが実際にやっていないことをトラブルシューティングしようとしないでください。 – VGR

答えて

1
frame.setLayout(new SpringLayout()); 

.... 

frame.add(insertedFilesViewport); 

たSpringLayoutへのフレームのレイアウトを変更しないでください。これを行う理由はありません。

テーブルを含むスクロールペインが表示されない理由は、add(...)メソッドに制約を使用しなかったためです。 How to Use SpringLayoutのSwingチュートリアルのセクションを読んで、コンポーネントを追加するための制約の複雑さを確認してください。

レイアウトをデフォルトのBorderLayoutのままにしておくと、コンポーネントはデフォルトでBorderLayoutCENTERに追加されます。上のチュートリアルには、How to Use BorderLayoutのセクションもあります。

関連する問題