これを行う方法はありますか?JTableで行を非表示にするにはどうしたらいいですか?
答えて
ベスト最も簡単な方法は、対応する要素をモデルから削除することです。
Sun's Tutorial for JTablesを確認し、[並べ替えとフィルタリング]セクションをご覧ください。
私は間違っているかフィルタリングはJava 1.6でのみ有効になっていますか? – joycollector
はい、私は恐れています。 – willcodejavaforfood
<1.6でフィルタリングを試したい場合はswinglabsのJXTableを使用してください。ソート関数を使用して別のTableModelを装飾する独自のTableModelを作成することもできます。 – KitsuneYMG
行を除外するために使用できるRowFilter<DefaultTableModel, Object>
クラスがあります。 DefaultTableModelは、独自のモデルで置き換えることができます。 ListSelectionEventsに耳を傾け、たとえば、行にアクセスする場合、フィルタに、お使いのモデルで、完全な行インデックスに見える行のインデックスを変換することを忘れないでください、方法
@Override
public boolean include(Entry entry) {
// All rows are included if no filter is set
if (filterText.isEmpty())
return true;
// If any of the column values contains the filter text,
// the row can be shown
for (int i = 0; i < entry.getValueCount(); i++) {
String value = entry.getStringValue(i);
if (value.toLowerCase().indexOf(filterText) != -1)
return true;
}
return false;
}
を実装します。 Javaは、同様にこの機能を提供します。
public void valueChanged(ListSelectionEvent e) {
ListSelectionModel lsm = (ListSelectionModel) e.getSource();
int visibleRowIndex = ... // Get the index of the selected row
// Convert from the selection index based on the visible items to the
// internal index for all elements.
int internalRowIndex = tableTexts
.convertRowIndexToModel(visibleRowIndex);
...
}
TY。しかし、私はJava 1.5のソリューションを探していました... – joycollector
これは受け入れられる回答でなければなりません –
あなたがのためにフィルタリングされた値が移入されている各列の配列リストを設定し、カスタムレンダラでこれらを実装することができます。セルの行全体の値が一致しない場合、レンダラーはrow + 1で再帰的に自身を呼び出します。
セルの行は、それがレンダリングされる、基準を満たさない場合は、別のArrayListが既にレンダリングされた行番号を格納し、その最良の例で説明し、この方法は、顧客のレンダラである私は示す必要がある場合はJLabelの
public Component getTableCellRendererComponent(JTable table, Object color,
boolean isSelected, boolean hasFocus, int row, int column) {
Object value;
String s;
try {
if (row == 0) {
drawn[column].clear();
}// drawn is arraylist which stores cols rend
if (row > table.getModel().getDataVector.size()) {
return null;
}// if we go too far
if (drawn[column].contains(Integer.toString(row)) == true) {
// already rendered?
return getTableCellRendererComponent(table, color, isSelected,
hasFocus, (row + 1), column);
}// render row+1
for (int i = 0; i < filters.length; i++) {
value = table.getModel().getValueAt(row, i);
s = (i == 1) ? df.format(value) : value.toString();
if (filters[i].contains(s) != true) {
//try and put in next row, if succeeds when it reaches column 8 it adds row to
return getTableCellRendererComponent(table, color,
isSelected, hasFocus, (row + 1), column);
}
}
value = table.getModel().getValueAt(row, column);
setFont(getFont().deriveFont(Font.BOLD));
if ((isSelected == false)) {
if ((column == 1)) {
setForeground(Color.magenta);
}// just formatting
else {
setForeground(Color.black);
setBackground(Color.white);
}
} else {
setBackground(Color.blue);
setForeground(Color.white);
}
if ((column == 1))// col 1 is a date, other columns strings
{
setText((value == null) ? "" : df.format(value));
} else {
setText((value == null) ? "" : value.toString());
}
todayStr = df.format(new java.util.Date());
dateval = table.getModel().getValueAt(row, 1);
String datevalStr = df.format(dateval);
if (datevalStr.equals(todayStr)) {
setForeground(Color.red);
}
drawn[column].add(Integer.toString(row));// mark row as rendered
} catch (Exception e) {
e.getMessage();
return null;
}
return this;
}
- 1. UITabBarを非表示にするにはどうしたらいいですか?
- 2. WPF usercontrolからTextBlockコントロールを非表示/非表示にするにはどうすればいいですか?
- 3. アクセシビリティツリーからNSViewを非表示にするにはどうしたらいいですか?
- 4. Google Docsエディタで共有ボタンやサインインボタンを非表示にするにはどうしたらいいですか?
- 5. ギャラリービューをリストビューで表示するにはどうしたらいいですか?
- 6. ファイルをsdcardに表示するにはどうしたらいいですか?
- 7. コンソールにハフマンツリーを表示するにはどうしたらいいですか?
- 8. htmlリストのグループからリストを非表示にするにはどうしたらよいですか?
- 9. navigationcontrollerの下から上へviewcontrollerを表示/非表示するにはどうすればいいですか?
- 10. Emacsで選択した行をハイライト表示するにはどうしたらいいですか?
- 11. ラジオボタンで表を表示および非表示にするにはどうすればいいですか?
- 12. ステータスバーを非表示にするにはどうすればいいですか?
- 13. テーブルビューを非表示にするにはどうすればいいですか?
- 14. クリックを非表示にするにはどうすればいいですか?
- 15. アプリチューザーウィンドウを非表示にするにはどうすればいいですか?
- 16. ボタンをMVCビューでクリックした後に非表示にするにはどうすればいいですか?
- 17. ログインしているユーザーからオプトインスクリプトを非表示にするにはどうすればよいですか?
- 18. iOS Swift 3でキーボードをスムーズに表示/非表示にするにはどうすればいいですか?
- 19. このカスタムビューを表示するにはどうしたらいいですか?
- 20. igraph出力を表示するにはどうしたらいいですか?
- 21. YQL/xpath/javascriptを表示するにはどうしたらいいですか?
- 22. クリックしたコンテンツにスクロールするメニューを非表示にするにはどうすればいいですか?
- 23. JavaScriptでHTML要素を非表示にするにはどうしたらいいですか?ボタンをクリックすると表示されますか?
- 24. タップが終了したらラベルを非表示にするにはどうすればよいですか?
- 25. $ ionicPopupを一度しか表示しないようにするにはどうしたらいいですか?
- 26. UITableViewで行を非表示にするにはどうすればいいですか?
- 27. Mac用のOutlookアドインを非表示/非表示にするにはどうすればよいですか?
- 28. レイアウトのトップパネルを非表示にする/表示するにはどうすればいいですか?
- 29. FindStrで何かが表示されないようにするにはどうしたらいいですか?
- 30. フィールドが空の場合に行を非表示にするにはどうすればいいですか?
を拡張しかし、彼は後でまた? – joycollector
それではもう一度追加してください:) – willcodejavaforfood
最後に私はこのようにしました... 2つのデータセット... 1つはいっぱいですが、もう1つはfireDataTableChangedが呼び出されたときに読み込まれます...しかし、私は遅いです... – joycollector