2016-12-16 8 views
0

私はJBtableを持っていて、その列の1つにボタンを挿入したいと思います。JBTable ColumnInfo with button

private class DeleteColumn extends ColumnInfo<Field, JButton> { 

     public DeleteColumn() { 
      super("Delete"); 
     } 

     @Nullable 
     @Override 
     public JButton valueOf(final Field field) { 
      final JButton removalButton = new JButton(); 
      removalButton.setText("-"); 
      removalButton.addActionListener((e) -> { 
       // do something 
      }); 
      return removalButton; 
     } 

     @Override 
     public Class<?> getColumnClass() { 
      return JButton.class; 
     } 

    } 

これがレンダリングされるときしかし、それはまだ唯一のJButtonの.toStringを()が表示され、次のように

私の試みでした。どのようにしてテーブルにボタンを表示できますか?

答えて

1

私は、あなたがすべきではないボタン

を挿入したいと思いますJButtonをテーブルに追加します。 JTableのデータはSwingコンポーネントであってはなりません。列にテキストを格納してから、JButtonを使用してテキストをレンダリングするだけです。

たとえば、レンダラー/エディターとしてボタンを使用できるクラスの場合は、Table Button Columnをチェックします。