United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6884066 JTableHeader listens mouse in disabled state and doesn't work when not attached to a table
JDK-6884066 : JTableHeader listens mouse in disabled state and doesn't work when not attached to a table

Details
Type:
Bug
Submit Date:
2009-09-21
Status:
Closed
Updated Date:
2011-01-19
Project Name:
JDK
Resolved Date:
2010-01-13
Component:
client-libs
OS:
windows_vista,generic,windows_xp
Sub-Component:
javax.swing
CPU:
x86,generic
Priority:
P2
Resolution:
Fixed
Affected Versions:
6,6u14,7
Fixed Versions:
6u18 (b03)

Related Reports
Backport:
Duplicate:
Duplicate:
Relates:
Relates:

Sub Tasks

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();
            }
        });
    }
}

                                    

Comments
EVALUATION

should be fixed
                                     
2009-09-21



Hardware and Software, Engineered to Work Together