動的 startNumRow
オリジナルでは TableModel の startNumRow を多めに設定してある。そのため,table を使う画面では,最初からスクロールバーが出ており,知らないうちにちょっとスクロールして,先頭の方の項目が隠れてしまったりする。startNumRow を少なめに設定するとスクロールバーは消えるが,今度は renderer が getRowCount データのある範囲しかレンダリングしてくれず,実用上は問題がないものの見た目がかっこわるい。そこで,動的に startNumRow を調節して,いつも画面全体にレンダリングして,しかもスクロールバーがでないようにした。
table/ObjectReflectTableModel.java の編集
//// 組込先の JTable とその親の viewport private boolean table = false; //親テーブルのセットの有無 private javax.swing.JComponent view; // 親テーブルの viewport private int rowHeight; // 親テーブルの行の高さ ・ ・ ////↓ 動的 startNumRow のため,組み込み先の table をセットする public void setTable(javax.swing.JTable t) { if (t != null) { rowHeight = t.getRowHeight(); view = (JComponent) t.getParent(); if ((rowHeight != 0) & (view != null)) table = true; } else table = false; } ////↑ ・ ・ public int getRowCount() { ////↓ 動的 startNumRows のため,組み込み先のテーブルがセットされていたらその親に startNumRows を合わせる if (table) startNumRows = view.getHeight() / rowHeight; ////↑ return (objectList != null && objectList.size() > startNumRows) ? objectList.size() : startNumRows; }
table/ObjectTableModel.java の編集
////↓ 動的 startNumRow 調整のためのコード private int rowHeight; private JComponent view; private boolean table; public void setTable(javax.swing.JTable t) { if (t != null) { rowHeight = t.getRowHeight(); view = (JComponent) t.getParent(); if ((rowHeight != 0) & (view != null)) table = true; } else table = false; } public int getRowCount() { //オリジナルの getRowCount はコメントアウト // 動的 startNumRows のため,組み込み先のテーブルがセットされていたらその親に startNumRows を合わせる if (table) { startNumRows = view.getHeight() / rowHeight; } int size = getObjectCount(); return size < startNumRows ? startNumRows : size; } ////↑あとは,上記の TableModel を組み込んだ画面を表示するクラスで,画面初期化部分(initComponent(), initialize()等)の最後に TableModel に対して組み込まれた JTable を教える1行を加える。
////↓ 動的 startNumRows 調節のための設定 tableModel.setTable(diagTable); ////↑組み込むところ
- DiagnosisDocument.java
- DocumentHistory.java
- AllergyInspecter.java
- PhysicalInspecter.java
-
plugin
- PatientSearchImpl.java
- WatingListImpl.java
- LaboTestImporter.java
- AppointTablePanel.java
- OrderHistoryPanel.java
« 1年前のカルテが出なくなった | トップページ | カルテ保存後ウインドウを閉じる »
「OpenDolphin」カテゴリの記事
- IME on/off の切り替え(2024.09.03)
- 促音拗音の検索(2024.09.01)
- Java 17 への移行(7) - OpenDolphin client の対応 (2023.02.04)
- Java 17 への移行(6) - Hibernate 6 でやらかす(2023.02.03)
- Java 17 への移行(5) - OpenDolphin server の対応(2023.02.02)