diff --git a/src/main/java/io/github/dsheirer/module/decode/event/DecodeEventPanel.java b/src/main/java/io/github/dsheirer/module/decode/event/DecodeEventPanel.java index 2105d4f4..55609355 100644 --- a/src/main/java/io/github/dsheirer/module/decode/event/DecodeEventPanel.java +++ b/src/main/java/io/github/dsheirer/module/decode/event/DecodeEventPanel.java @@ -96,7 +96,6 @@ public class DecodeEventPanel extends JPanel implements Listener(mEventModel); mTableRowSorter.setRowFilter(new EventRowFilter()); mTable.setRowSorter(mTableRowSorter); - mTable.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN); mTableColumnWidthMonitor = new JTableColumnWidthMonitor(mUserPreferences, mTable, TABLE_PREFERENCE_KEY); updateCellRenderers(); mHistoryManagementPanel = new HistoryManagementPanel<>(mEventModel, "Event Filter Editor"); diff --git a/src/main/java/io/github/dsheirer/preference/swing/JTableColumnWidthMonitor.java b/src/main/java/io/github/dsheirer/preference/swing/JTableColumnWidthMonitor.java index 7eeb37d4..a3cb9b4b 100644 --- a/src/main/java/io/github/dsheirer/preference/swing/JTableColumnWidthMonitor.java +++ b/src/main/java/io/github/dsheirer/preference/swing/JTableColumnWidthMonitor.java @@ -25,6 +25,7 @@ import io.github.dsheirer.util.ThreadPool; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.awt.EventQueue; import javax.swing.JTable; import javax.swing.event.ChangeEvent; import javax.swing.event.ListSelectionEvent; @@ -60,7 +61,12 @@ public class JTableColumnWidthMonitor mTable = table; mKey = key; - restoreColumnWidths(); + mTable.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS); + + // Wait until the UI is realized to set preferred column widths + EventQueue.invokeLater(this::restoreColumnWidths); + + // Keep listening for drag-resizes so you can re-save new widths mTable.getColumnModel().addColumnModelListener(mColumnResizeListener); }