Windows では、テーブルのツールチップ (JToolTip) をクリックすると、ツールチップが削除され、テーブル内の行が選択されます。ただし、Mac では、ツールチップを削除するだけのようで、テーブル内の行は選択されません。
コードは標準の JTable を使用するだけで、JTable の getToolTipText メソッドをオーバーライドします。カスタム JToolTip などは作成されません。
コード:
public class MyJTable extends JTable
{
@Override
public String getToolTipText(MouseEvent event)
{
return "Hello world";
}
}
* *更新:さらに調査すると、この問題はこの バグ レポートに類似したものによるものと思われます。基本的に、ToolTipManager.showTipWindow() はツールチップを Mac では HeavyWeight コンポーネントとして作成し、Windows では LightWeight コンポーネントとして作成します。これにより、マウスリスナーが起動されなくなります。さらに悪い点は、popupType を軽量に設定しても、Java コードが popupFactory.getPopup(...) を呼び出すと、そのメソッドで重量コンポーネントとして作成されることです。