問題タブ [treetableview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JavaFX の ListChangeListener.Change.getRemoved() は連続していないアイテムを返すことができますか?
問題
からアイテムが削除されると、削除の場所と削除されたアイテムのリストをObservableList
示すchange イベントが発生します。ドキュメントには次のように記載されています。getFrom()
getRemoved()
この
getRemoved()
メソッドは、リストから置換または削除された要素のリストを返します。
そのように述べられていませんが、アイテムのリストが元のリストからの連続したサブリストであることを暗示していると思いました。私はその前提で多くのコードを書いてきましたが、現在、そのように動作しないTreeTableView
の選択モデルで問題が発生しています。
例
たとえば、3 つの「ノード」行を持つ単純なツリー テーブルを考えてみましょう。その3行を選択すると...
...次に、中央の行だけをクリックして選択します...
...発生する変更イベントはtreeTableView.getSelectionModel().getSelectedItems()
次のようになります。
単一の変更イベントで、「ノード 1」と「ノード 3」がselectedItems
リストのインデックス 0 から削除されたことを報告します。
オブジェクトには、呼び出しでChange
区切られた 2 つの個別の削除イベントがあると予想していました。next()
への最初の呼び出しnext()
は、「ノード 1」がインデックス 0 で削除されたnext()
ことを通知し、2 回目の呼び出しは、「ノード 3」がインデックス 1 で削除されたことを通知します。一度。
質問
getRemoved()
連続していないアイテムを本当に返すことができますか? これは、リスト変更イベントがどのように機能するかについての私の誤解ですか、それとも のバグTreeTableView
ですか?
通常、私は標準ライブラリのせいにするのを躊躇しますが、JavaFX で見つけたバグはこれが初めてではないので、考えられないことではありません。
アップデート
への呼び出しを追加するとsetShowRoot(false)
、動作が変わります。予想どおりの結果が得られました。削除は2つの部分に分かれています。
また、ここに私のMCVEがあります:
javafx - JavaFX スナップショットのすべてのコンテンツ ツリー/テーブル ビュー
ツリー テーブル ビューのコンテンツを .png ファイルにエクスポートしたいと考えています。しかし、スナップショットを使用すると、スナップショットは画面に表示されているテーブルビューのみを取得します。この問題についてあらゆる形式を検索しましたが、解決策が見つかりません。どんな提案もできます。テーブルのすべてのコンテンツをpng(pdfまたはxlsファイルも)にエクスポートする方法
javafx-8 - TreeTableView は親行のセルを無効にします
treetableviewの親行で編集可能なセルを無効にするにはどうすればよいですか? 写真を見て、サンプルコードを確認してください。行が展開可能な場合、すぐに編集可能な行を無効にしたい(ルート行またはサブルート行)
**コード例**
それを実行して、ルート項目をダブルクリックするだけです
make-individual-cell-editable-in-javafx-tableview テーブルビューで はソリューションが機能することを確認しましたが、ツリーテールビューでは機能しません。
javafx - オーバーライドされたセル ファクトリを使用して TableView/TreeTableView からコピーする
/から「見たとおりに」データをコピーする普遍的な方法 (つまり、任意のTableView
orに適用できる) を探していました。(hereおよびhere )からコンテンツをコピーする方法に関するいくつかの投稿を見つけましたが、「ご覧のとおり」重要な部分はそれらすべての問題です。TreeTableView
TableView
TreeTableView
TableView
私が見たすべてのソリューションは、各セルに関連付けられたデータを取得し (実行するのは非常に簡単です)、それを呼び出すことに依存してい.toString()
ます。問題は、1 つの型 ( a としましょうLong
) を実際のデータとして列に格納し、それを a として表示するカスタム セル ファクトリを定義するString
場合です (それを行う理由の範囲を超えています。メソッドが必要なだけです)。このようなテーブル ビューで動作します):
Long
基になるデータ (ここにあります)の変換に基づくこれらのメソッドは、明らかに機能しません。これは、日付ではなく数値String
をコピーするためです(ユーザーがテーブルに表示するもの)。
可能な (想定される) 解決策:
TableCell
表の各セルに関連付けられたオブジェクトを手に入れることができれば、それでTableCell.getText()
完了です。残念ながら、TableView
これは許可されていません (それを行う方法を見逃していませんか?)CellFactory
列に関連付けられた を簡単に取得できるため、新しいTableCell
(テーブル ビューに存在するものと同じ) を作成できます。TableCell<T, ?> cell = column.getCellFactory().call(column);
問題は、a にメソッドを強制的
TableCell
に呼び出すupdateItem
方法がないことです (繰り返しますが、見逃しましたか?)。を使用しようとしましたcommitEdit(T newValue)
が、かなり面倒です。内部にチェックがあるため、すべてのもの (列、行、テーブル)を作成し、最初Editable
に呼び出す必要があります。startEdit
2a. したがって、私にとって有効な唯一の解決策は、 Reflection を使用して protected を呼び出すことです
/li>updateItem
。これは、一種の汚いハッキングのように感じます。
それについてコメントをいただければ幸いです。つまり、これがより少ない血液で達成できるかどうかです。または、私が見逃したソリューションの問題を示している可能性があります。
誰かがそれを使いたい場合の完全なコードは次のとおりです(その醜さにもかかわらず:)
次に、使用法は非常に簡単です。
ありがとう!
java - ソースの変更後に TreeTableView の選択に null 値が含まれる
基本値のリストは、(変化する) 述語によってフィルタリングされます。はs にFilteredList
マップされTreeItem
、この結果のリストはルートTreeItem
s の子として使用されます。
で選択が行われたTreeTableView
後、述語が変更された場合、選択された項目にアクセスするとNullPointerException
.
変更に含まれる項目は のようですnull
。この大雑把なコンセプトに設計上の欠陥はありますか?
これは、クラスおよびでは発生しません。TreeView
ListView
マッピングにhttps://github.com/TomasMikula/EasyBindを使用して MCVE を作成しようとしました。
javafx - JavaFx TreeTableView リアルタイム データ
問題 - TreeTableView にリアルタイム データを入力できません。データは外部ソースからのものであり、リアルタイムで TreeTableView に表示する必要があります
以下は、コードの簡潔な部分です。ノードを使用してツリー テーブル ビューを作成できます。テストのために、乱数ジェネレーターを作成し、それをテーブル ツリー ビュー フィールドにバインドしました。これが正しいアプローチかどうかはわかりません。
問題を明確に説明できたことを願っています。ご案内をお待ちしております。
FXML:
コントローラ:
テスト目的で、FXML にボタンを追加し、以下のコードをリンクして、乱数ジェネレーターを追加して、取得する予定のリアルタイム データをシミュレートしました。アイデアは、乱数が値を生成するため、開始ボタンを押した後、最新の列の値に値が表示されるはずです。今のところ、Latest では機能しないため、High & Low 列に値を渡していません。
javafx - javafx TreeTableView が更新されない
私は問題の調査に数時間を費やしましたが、それについて理解することができません。このリンクとそのリンクは既に見つかりましたが、そこでの提案に従ったと思いますが、TreeTableView は更新されません。
私は、initialize-Method を使用して cell- および cellValue-Factories を設定するコントローラーを持っています。
refreshTreeTableViews() では、いくつかの項目を TreeTableView に追加しています。TreeItemPropertyValueFactories の場合、これは正常に機能し、TreeTableView が表示されるとすべてが正しくレンダリングされます。ただし、ShowFinancialBookingsCell() があるセルは、最初はレンダリングされません。上下にスクロールすると、非表示になっていた TreeTableView の一部が再び表示され、ShowFinancialBookingsCell() が正しく表示されます。
このため、refreshTreeTableViews() 関数の後に TreeTableView を更新しようとしましたが、何も変わりませんでした。
ShowFinancialBookingsCell のコードは次のとおりです。
}
カスタムセルで私が間違っていることを知っている人はいますか? 他のセル (TreeItemPropertyValueFactory を持つ) は適切にレンダリングされます。
javafx - JavaFX TreeTableView は、折りたたむときにアイコンを残す
TreeTableView
すべてのノードにアイコンがある場所があります。ツリーを展開するとすべてが完全に機能しますが、ツリーを折りたたむと、表示されなくなったアイテムのアイコンが残ります。
行とテキストは削除されますが、アイコンは「フリーフローティング」のままです。スクリーンショットTreeTableView
では、正しいテキストで展開された 1 回と、残りのアイコンのみが表示された 1 回の 2 回表示されています。
上のスクリーンショットは、次の最小限の例から作成されたものです (独自の を追加するだけで済みますicon.png
)。
LinuxでOpenJDKとOracle Java 8u92を使用し、WindowsでOracle Java 8u92を使用してこれを試しました。
java - 階層データを作成し、JavaFX で TreeTableView に追加する
私はプログラミングを始めたばかりで、Single Transferable Voteを使用して投票をカウントするためのJavaでプログラムを書いています。次のようなExcelファイルに入力データがあります。
ここで、候補者の名前はその下の番号にマップされ、HashTable
行 2 の下のすべての行は、左から右への 1 つの有権者の好みを表します。
TreeTableView
次のような名前と投票を追加したいと思います。
各候補が第 2 選好のルートである場合、各第 2 選好は第 3 選好のルートであり、各第 3 選好は第 4 選好のルートです。
ライブラリを使用apache.poi
してExcelファイルを使用しています。シートから階層データを表現する方法と、それを に追加する方法に関するヒントを探していますTreeTabeView
。どうすればこれを行うことができますか?
これが初心者の質問である場合は申し訳ありません。階層データの使い方がよくわかりません。前もって感謝します!