import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import java.awt.BorderLayout;
import java.awt.Window;

public class TableHeaderToolTipBug {
   private TableHeaderToolTipBug() {
   }

   public static void main(String[] args) {
      SwingUtilities.invokeLater(TableHeaderToolTipBug::run);
   }

   private static void run() {
      Object[][] data = new Object[5][];
      for (int i = 0; i < data.length; i++) {
         data[i] = new Object[]{11111111, 22222222, 33333333, 44444444, 55555555};
      }
      JTable table = new JTable(new DefaultTableModel(data, new String[]{"1", "2", "3", "4", "5"}));
      table.getTableHeader().setToolTipText("<html>This is a table header tooltip<br>with more than<br>one line");

      JPanel panel = new JPanel(new BorderLayout());
      panel.add(table.getTableHeader(), BorderLayout.NORTH);
      panel.add(table);

      JPanel anotherPanel = new JPanel(new BorderLayout());
      anotherPanel.add(panel);

      JDialog dialog = new JDialog((Window) null, "Table header tooltip");
      dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
      dialog.add(anotherPanel);
      dialog.setSize(600, 400);
      dialog.setLocationRelativeTo(null);
      dialog.setVisible(true);
   }
}
