private void addFiltersGUIsToPanel(JPanel filtersPanel) {
    filtersPanel.setLayout(new MigLayout("", "[grow]", ""));

    Collection<LogFilter> loadedFilters = logFiltersContainer.getElements();

    // Reload filters, every instance of filter is connected to listeners, data table etc.
    filtersList = new ArrayList<>();
    for (LogFilter logFilter : loadedFilters) {
      try {
        LogFilter filter = logFilter.getClass().newInstance();
        filtersList.add(filter);
      } catch (Exception e) {
        LOGGER.error("Can't initialize filter: " + logFilter.getClass(), e);
      }
    }
    filtersList.sort(Comparator.comparing(LogFilter::getName));
    JLabel filtersLabel = new JLabel("Filters:");
    filtersLabel.setMinimumSize(new Dimension(200, 16));
    filtersLabel.setPreferredSize(new Dimension(200, 16));
    filtersLabel.setIcon(Icons.FILTER);
    Font f = filtersLabel.getFont().deriveFont(Font.BOLD);
    filtersLabel.setFont(f);
    filtersPanel.add(filtersLabel, "wrap, growx, span");
    LogFilterValueChangeListener listenerToWrap = new LogFilterValueChangeListenerImpl(table, sorter, filtersList, statusObserver);
    final StatsService statsService = getOtrosApplication().getServices().getStatsService();

    for (LogFilter filter : filtersList) {
      final LogFilterValueChangeListenerStatsWrapper listener =
        new LogFilterValueChangeListenerStatsWrapper(listenerToWrap, statsService, filter.getPluginableId());
      filter.init(new Properties(), dataTableModel, getOtrosApplication().getTheme());
      FilterPanel filterPanel = new FilterPanel(filter, listener);
      filtersPanel.add(filterPanel, "wrap, growx");
      if (filter instanceof ThreadFilter) {
        ThreadFilter threadFilter = (ThreadFilter) filter;
        focusOnThisThreadAction = new FocusOnThisThreadAction(threadFilter, filterPanel.getEnableCheckBox(), otrosApplication);
      } else if (filter instanceof TimeFilter) {
        focusOnEventsAfter = new FocusOnEventsAfter((TimeFilter) filter, filterPanel.getEnableCheckBox(), otrosApplication);
        focusOnEventsBefore = new FocusOnEventsBefore((TimeFilter) filter, filterPanel.getEnableCheckBox(), otrosApplication);
      } else if (filter instanceof ClassPackageFilter) {
        final ClassLikeFilter classLikeFilter = (ClassLikeFilter) filter;
        focusOnSelectedClassesAction = new FocusOnSelectedClassesLikeAction(classLikeFilter, "Focus on selected classes", filterPanel.getEnableCheckBox(), otrosApplication);
        ignoreSelectedEventsClasses = new IgnoreSelectedEventsClasses(classLikeFilter, filterPanel.getEnableCheckBox(), otrosApplication);
      } else if (filter instanceof LoggerHierarchyFilter) {
        final ClassLikeFilter classLikeFilter = (ClassLikeFilter) filter;
        focusOnSelectedLoggerNameAction = new FocusOnSelectedClassesLikeAction(classLikeFilter, "Focus on selected loggers", filterPanel.getEnableCheckBox(), otrosApplication);
      } else if (filter instanceof CallHierarchyLogFilter) {
        showCallHierarchyAction = new ShowCallHierarchyAction((CallHierarchyLogFilter) filter, filterPanel.getEnableCheckBox(), otrosApplication);
      } else if (filter instanceof PropertyFilter) {
        propertyFilter = (PropertyFilter) filter;
        propertyFilterPanel = filterPanel;

      }
    }
    filtersLabel.add(logsMarkersPanel, "span, grow");
  }
Set column size depending on configured display text/icon.
If the header is wider than contend, the width of header will be used.
olv-core/src/main/java/pl/otros/logview/gui/LogViewPanel.java