1

Java コードを使用して、別の外部 Java swing アプリケーションを操作しようとしていますが、そのアプリケーションのコーディング方法に関する情報にはアクセスできません。具体的には、JXTreeTable を操作しようとしています。ブール型の列の 1 つに、チェックボックスが含まれています。

私がやろうとしたことの1つは、ダブルクリックしてからスペースバーを押すアクションをコード化することで、うまくいきまし。ただし、マネージャーは、スペースバーを使用せずにチェックボックスを切り替える方法を見つけてほしいと言っています。

元のアプリケーションの設計を知らないにもかかわらず、Java メソッドを使用してチェックボックスを切り替える方法を知っている人はいますか? ブール値パラメーターで setCellData() を使用しようとしました。奇妙なことに、変更した直後のセルに getCellData() を呼び出すと、変更した値が返されますが、チェックボックス自体は切り替えられません。さらに、フォームを送信するときに、送信されたのはチェックボックスによって反映された値であり、ブール値ではありません。セル。

さらに、ブール列のチェックボックスにはラベルが付いています。これらのラベルは TableRenderer によって生成されているように感じますが、ラベルの値を取得するにはどうすればよいですか?

注: 私は、(正確には QTP で) 作成している自動化テスト スクリプトを使用して、すべての Java コードを実行しています。そのため、使用できる多くのアプローチが制限されています (たとえば、独自のカスタム Java クラスをコーディングすることはできません)。

4

2 に答える 2

0

これが私の問題を解決した方法です:

しかし、私が今知ったように、私の特定の状況ははるかに複雑になりました。モデルを直接変更しても効果がないことが判明しました。ツリー内の実際のノード オブジェクトを介してすべてのテーブルの変更を行う必要がありました。メソッドをやみくもに追跡したところ、開発者がカスタム ノード ハンドラをコーディングしており、チェックボックスのステータスモデル内のデータの両方を変更するメソッドを使用していたことがわかりました。テーブルの表示を更新するには、treeTable.updateUI() を使用しました。

于 2012-07-25T14:44:11.020 に答える
0

列データがデータ モデルのブール値に基づいていると仮定して、データ モデルの値を変更します。

UIを更新できるように、必要なテーブル変更イベントを発生させるだけです。

于 2012-07-16T21:37:06.963 に答える