Javaへの新しい各種機能のまわりで私の頭を取得しようとイム、私の現在の頭痛は、私は3つのタブ(JScrollPaneにプラスJTableの)を保持それぞれとのJTabbedPaneを持っているのMouseListenerのMouseListenerとタブ付き行検出
である私が今必要どのタブのどの行がクリックされているかを検出し、問題にぶつかる。
最初のペインに単一のリスナーを配置して、どのタブが選択されているかを検出する必要がありますか?それとも各JTableに1つずつ置くのですか?
私は、次のコードを試してみましたが、私はそれを実行したとき、私は、NetBeans上で実行すると、それは誤り
standardTable.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
JTabbedPane aPane = (JTabbedPane)e.getComponent();
if(e.getClickCount()==2) {
detectMouseClickRow(aPane, e);
} // do this if double click
if(e.getClickCount()==1) {
detectSingleClick(aPane, e);
} // Do this if its a single click
}
});
を行い、何らかの理由でどこに問題が、doesntのリストに私を警告し、私はそれとそのエラーを無視detectMouseClickRow(aPane、e)にあります。またはそのシングルクリックバリアント
にClassCastException:javax.swing.JTableのはjavax.swing.JTabbedPaneに
をキャストすることはできません私はprollyここにそれが間違って取得していますし、これではないので、私はポインタを行うことができます使用する最良の方法は?
メッセージは自己説明的です。そこで、コード内でJTabbedPaneにObjectをキャストしようとします。このエラーは、ObjectがJTableであるため、JTableにObjectをキャストする必要があることを示しています。これは、JTabbedPaneではなくJTableにリスナーを追加するので意味があります。そのため、JTabbedPaneであると思われる理由がわかりません。 – camickr