كيفية تصفية الصفوف في JTable على أساس الأعمدة ذات القيمة المنطقية؟

StackOverflow https://stackoverflow.com/questions/2604238

سؤال

أنا أحاول تصفية الصفوف بناءً على عمود يقول C1 الذي يحتوي على قيم منطقية. أريد أن أعرض فقط الصفوف التي لها "صحيح" في C1. نظرت إلى الأمثلة في http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#sorting. يستخدم المثال مرشح regex. هل هناك أي طريقة يمكنني استخدام القيم المنطقية لتصفية الصفوف؟

فيما يلي رمز IM باستخدام (مستعار من المثال)

private void filter(boolean show) {
  RowFilter<TableModel, Object> filter = null;
  TableModel model = jTb.getModel();
  boolean value = (Boolean) model.getValueAt(0,1);

    //If current expression doesn't parse, don't update.
    try {
         // I need to used  'value' to filter instead of filterText.
        filter =RowFilter.regexFilter(filterText, 0);
    } catch (java.util.regex.PatternSyntaxException e) {
        return;
    }
    sorter.setRowFilter(filter);

}

شكرا.

هل كانت مفيدة؟

المحلول

هل جربت هذا المثال من جافادوك؟ (تعديل طفيف).

RowFilter<Object,Object> startsWithAFilter = new RowFilter<Object,Object>() {
  public boolean include(Entry<? extends Object, ? extends Object> entry) {
    for (int i = entry.getValueCount() - 1; i >= 0; i--) {
      if (entry.getValue(i).equals(true)) {
       return true;
      }
    }
    return false;
 }
};
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top