2017-07-28 8 views
0

私は自分のJTableにボタンを追加します。このボタンをクリックすると、対応するセルの内容が新しいJTextAreaに表示されます。あなたがここに見ることができるようにPL/SQL Developerでは、このようなボタンが、そこにある:PL/SQL Developerの「...」ボタンに類似するJava Swingコンポーネントはありますか?

クリッカブル:

enter image description here

編集:私はこのようにそれを試してみました:

public class TestKonfigTableCellRenderer extends DefaultTableCellRenderer { 

@Override 
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, 
     int row, int column) { 

    JLabel l = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
    JButton openButton = new JButton("..."); 
    l.add(openButton); 

    return l; 
    } 
} 

しかし、それはdoesnのうまくいきません。私は何を間違えたのですか?

+0

は、なぜあなたは、通常のJButtonを使用することはできませんか? – danielspaniol

+0

それは可能ですか?ボタンを追加する場所はどこですか?テーブルモデルでは?カスタムセルレンダラーでは?それとも別の場所? – Phreneticus

+0

'新しいJButtonの( "...")'カスタムイメージを使用して 'TableCellRenderer' –

答えて

2

「動作するようには思えない」ことにより場合、あなたはそれが予想され、ボタンをクリックすることはできませんを意味します。

レンダラによって返さ成分がスイング階層に追加されません。その代わりに、パフォーマンス上の理由から、その表の描画された表現だけが表内で使用されます。そのため、一般的なレンダラーは、状態を更新した後で常に同じコンポーネントを返すのです。詳細については、JTableチュートリアルの"Concept: renderers and editors" sectionを参照してください。

JTableにクリック可能なボタンを含める方法で利用できる投稿の数があります。例えば、this one

関連する問題