Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6884066

JTableHeader listens mouse in disabled state and doesn't work when not attached to a table

    XMLWordPrintable

Details

    • b03
    • generic, x86
    • generic, windows_xp, windows_vista
    • Verified

    Backports

      Description

        This is an umbrella CR for two problems with JTableHeader

        1) JTableHeader reacts to the mouse when disabled

        public class TableHeaderDisabled {

            private JComponent createContent() {
                JTable table = new JTable(20, 5);
                table.setAutoCreateRowSorter(true);
                table.setEnabled(false);
                table.getTableHeader().setEnabled(false);
                JComponent content = new JScrollPane(table);
                return content;
            }

            public static void main(String[] args) {
                SwingUtilities.invokeLater(new Runnable() {
                    public void run() {
                        JFrame frame = new JFrame("");
                        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                        frame.add(new TableHeaderDisabled().createContent());
                        frame.setLocationRelativeTo(null);
                        frame.pack();
                        frame.setVisible(true);
                    }
                });
            }

        }

        2) JTableHeader doesn't allow to drag a column to a new place when it is not attached to a JTable, try to drag a column to a new place with the following test case:
        (not that the dragged column returns to its initial place!)

        import javax.swing.*;
        import javax.swing.table.JTableHeader;

        public class TableHeaderStandAlone {

            private static void createGui() {
                final JFrame frame = new JFrame();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                
                // just to quickly grab a column model
                JTable table = new JTable(10, 5);
                JTableHeader header = new JTableHeader(table.getColumnModel());
                frame.add(header);
                
                frame.setSize(200, 200);
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }

            public static void main(String[] args) throws Exception {
                SwingUtilities.invokeAndWait(new Runnable() {
                    public void run() {
                        TableHeaderStandAlone.createGui();
                    }
                });
            }
        }

        Attachments

          Issue Links

            Activity

              People

                alexp Alexander Potochkin (Inactive)
                alexp Alexander Potochkin (Inactive)
                Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved:
                  Imported:
                  Indexed: