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

    Details

    • Subcomponent:
    • Resolved In Build:
      b03
    • CPU:
      generic, x86
    • OS:
      generic, windows_xp, windows_vista
    • Verification:
      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

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

                  Dates

                  • Created:
                    Updated:
                    Resolved:
                    Imported:
                    Indexed: