2

ここに私のアプリケーションの画像があります:

ここに画像の説明を入力

ご覧のとおり、そこに JTable があります。JFrame に関連する JTable のヘッダーの位置を取得する必要があります。

なぜ私はこれをしているのですか?テーブルの各列の目的を説明するヘルプ機能を追加しています。各列にスポットライトを当てます。次のようになります。

ここに画像の説明を入力

ご覧のとおり、スポットライトが表示されている場所がオフになっています。

場所を取得するには、次Rectangleを使用して列ヘッダーを取得します。

getTable().getTableHeader().getHeaderRect(i); 

これをRectangleJFrame の正しい場所に変換するには、次を使用します。

Point point = SwingUtilities.convertPoint(
                component, //the containing JPanel
                rectangle.getLocation(), //the rectangle for the table column header
                frame.getGlassPane()); //the containing JFrame

誰かが列ヘッダーの正しい場所を取得するのを手伝ってくれますか?

4

3 に答える 3

2

テーブルをソースコンポーネントとして使用する必要があると思います:

Point point = SwingUtilities.convertPoint(
            getTable(), //the table as reference
            rectangle.getLocation(), //the rectangle for the table column header
            frame.getGlassPane()); //the containing JFrame
于 2015-02-25T16:58:02.473 に答える
0

私はまったくJava espertではありませんが、ちょうど昨日、Oracleドキュメントを読んでいて、明らかにこれを処理するメソッドがあります(getToolTipText(MouseEvent))。また、コンテンツに基づいて JTable のヘッダーにヘルプを表示する別の方法も提案しています。それをご覧になることをお勧めします:

http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data

于 2015-03-09T14:02:38.270 に答える