A JComboBox will display whatever you pass in to it as the list of displayable items so if you give it a list of strings it will display those strings, it knows nothing about columns. If you just want to display part of a
String you have to pass in the part you want to display (as you have done using substring()) or alternatively you can create your own ListCellRenderer to handle displaying the appropriate subsection of each String in which case you can pass in the whole String.
The filter class you have chosen to use also requires a list of items to filter and display so again you have to pass in the appropriate list of substrings or if you are using a ListCellRenderer pass in the whole string and extend the ListCellRenderer to filter on only the parts of the String you want it to filter on (probably just the parts that are displayed).