2012-11-19 25 views
8

JavaSwingテーブルの動的行番号に使用するサンプルコードがあります。具体的にはJTableです。私はJavaFXに新規であり、JavaFXで同じになりたいです。そこJavaFX表のJavaFXでjavafxテーブルの自動行番号付け

class LineNumberTable extends JTable { 

      private JTable mainTable; 

      public LineNumberTable(JTable table) { 
       super(); 
       mainTable = table; 
       setAutoCreateColumnsFromModel(false); 
       setModel(mainTable.getModel()); 
       setAutoscrolls(false); 
       addColumn(new TableColumn()); 
       getColumnModel().getColumn(0).setCellRenderer(mainTable.getTableHeader().getDefaultRenderer()); 
       getColumnModel().getColumn(0).setPreferredWidth(40); 
       setPreferredScrollableViewportSize(getPreferredSize()); 

      } 

      @Override 
      public boolean isCellEditable(int row, int col) { 
       if (col == uneditableColumn) { 
        return false; 
       } 
       return bEdit; 
      } 

      @Override 
      public Object getValueAt(int row, int column) { 
       return Integer.valueOf(row + 1); 
      } 

      @Override 
      public int getRowHeight(int row) { 
       return mainTable.getRowHeight(); 
      } 
     } 
+0

あなたはそれを明確にするために、あなたのSwingのJTableのスクリーンショットを追加することができますあなたは何ですか? –

+0

@UrsReupkeこのスクリーンショットを参照してください。 http://zss.s3.amazonaws.com/Untitled.png?AWSAccessKeyId=AKIAINHDRCMKC5GUSNFA&Expires=1361989789&Signature=DF6NRn6l4HyYHiEV3o3MHM3XMao%3D。上記のコードで生成された最初の列に行番号を持つswing tableのスクリーンショットを見ることができ、javafxで同じようになります。ありがとう –

答えて

5

に自動行番号を設定するにはどのような方法があり、あなたがあなたのTableViewを移入するCellFactoriesとCellValueFactoriesでTableColumn Sを使用することです。

JavaFXチュートリアルには、開始する可能性のあるarticleがあります。

私は、ビジネスオブジェクトを表示オブジェクトに変換し、必要なすべてのプロパティ(あなたの場合のように、番号)を追加しました。

EDIT:秒、クリーナーアプローチでは、あなたがTableCell#updateItem(S, boolean)に独自のindex性を示すTableCellを作成するためにあなたのCellFactoryを設定できます

public class NumberedCell extends TableCell{ 

    protected void updateItem(Object object, boolean selected){ 
    setText(String.valueOf(getIndex()); 
    } 
} 
+0

ありがとう。私はあなたに戻ってきます。 –

+0

サンプルコードをいくつか追加しました。 –

+1

私は、updateItemのブール型パラメータは "selected"ではなく "empty"と考えています。大したことではありませんが、読者には混乱を招く可能性があります。 –

関連する問題