JPanelを含む1つの列を持つテーブルがあります。私はカスタムレンダラとエディタを書いており、うまく動作します。ただし、パネルにはツールチップを含むJLabelコンポーネントが含まれています。セルをクリックしてラベルにカーソルを合わせるとツールチップが表示されますが、マウスをセルに移動してJLabel上にマウスを置くとツールチップが表示されません。私はPanelオブジェクトを取得し、それがフォーカスを持っているようにするために、以下に示すようにマウスリスナーをテーブルに追加しました。JTableのJPanelはマウスのクリックにフォーカスを当てますが、マウスの上には移動しません
public void mouseMoved(MouseEvent e) {
Point p = e.getPoint();
int row = table.rowAtPoint(p);
int column = table.columnAtPoint(p);
System.out.println(row + " " + column);
Object o = table.getModel().getValueAt(row, column);
if (o instanceof FileInfoCellPanel) {
FileInfoCellPanel ficp = (FileInfoCellPanel)o;
ficp.requestFocusInWindow();
//ficp.revalidate();
}
}
私は間違いなく正しいJPanelオブジェクトを取得していますが、フォーカスが得られないようです。セル内をクリックすると、パネルにフォーカスが置かれているように見えますが、マウスを動かすことはできません。
ありがとうございます。アップ投票され、私の答えは削除されました。 –