How to disable JTable Column Dragging?

cant figure out how to do this..thanks

hi, i had the same problem, too. the only solution i could find was to override the
moveColumn(int columnIndex, int newIndex) {}
method in the TableColumnModel. if there is a nicer way to do this (like the hidden flag i did not find), i'd be interested in that solution as well ...

Similar Messages

  • How to disable JTable Column Dragging (only single column)

    How could i disable a single column from being dragged in JTable?
    I need to fix the first column from being dragged in JTable and all other columns except the first can be dragged. how would i accomplish this task ?
    well, i know how to fix all column in jtable from being dragged using
    table.getTableHeader().setReorderingAllowed(false);But dont know how to fix only a single column. is there any method for doing this. or i have to implement any other logic?
    Please help me !
    Thanks

    The question is why do you have this requirement. I figure if the user wants to reorder the colum, let them, the table won't break.
    Maybe something like this would be acceptable:
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.*;
    public class FixedColumnScrollPane extends JScrollPane
        public FixedColumnScrollPane(JTable main, int fixedColumns)
            super( main );
            //  Use the table to create a new table sharing
            //  the DataModel and ListSelectionModel
            JTable fixed = new JTable( main.getModel() );
            fixed.setFocusable( false );
            fixed.setSelectionModel( main.getSelectionModel() );
            fixed.getTableHeader().setReorderingAllowed( false );
    //        fixed.getTableHeader().setResizingAllowed( false );
            fixed.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
            main.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
            //  Remove the fixed columns from the main table
            for (int i = 0; i < fixedColumns; i++)
                TableColumnModel columnModel = main.getColumnModel();
                columnModel.removeColumn( columnModel.getColumn( 0 ) );
            //  Remove the non-fixed columns from the fixed table
            while (fixed.getColumnCount() > fixedColumns)
                TableColumnModel columnModel = fixed.getColumnModel();
                columnModel.removeColumn( columnModel.getColumn( fixedColumns ) );
            //  Add the fixed table to the scroll pane
            fixed.setPreferredScrollableViewportSize(fixed.getPreferredSize());
            setRowHeaderView( fixed );
            setCorner(JScrollPane.UPPER_LEFT_CORNER, fixed.getTableHeader());
        public static void main(String[] args)
            //  Build your table normally
            JTable table = new JTable(10, 8);
            table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
            JScrollPane scrollPane= new FixedColumnScrollPane(table, 1 );
            JFrame frame = new JFrame("Table Fixed Column Demo");
            frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
            frame.getContentPane().add( scrollPane );
            frame.setSize(400, 300);
            frame.setVisible(true);
    }Or maybe you should be using a Row Header. A row header is like the column header of JTable. It remains fixed on the left side of the scroll pane. Search the forum for examples using "setrowheaderview".

  • Disable JTable Column dragging?

    How do you disallow the user from moving the order of your columns in a JTable? They are able to select data within the column, but I don't want them to change the order of the columns (drag and drop the columns). Thanks for any help/suggestions in advance. --Dean                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    JTable table = new JTable(...);
    JTableHeader header = table.getTableHeader();
    header.setReorderingAllowed(false);Mitch Goldstein
    Author, Hardcore JFC (Cambridge Univ Press)
    [email protected]

  • How to disable JTable column?

    Hi! this is archana. Pls suggest me how to disable columns of a table except one, so that no other one can modify its cell values.
    Help me.

    Hi
    i dont know whether u r using TableModel or not.
    if ur using a customTableModel for ur entries ..
    u can implement the following method of
    Table Model Interface.
    public boolean isCellEditable(int rowIndex,                              int columnIndex)then implement in such a way that ..
    compare always with ur column number and return false.
    as follows.
    public boolean isCellEditable(int rowIndex,                              int columnIndex){if (columnIndex ==4 )return false;elsereturn true;}above code makes all cells in the col=4 uneditable.
    even u rearrange the cols in table it works as per documentation.
    test this .. and let me know whether u succeeded r not.
    note: i think The implementation of this method in AbstractTableModel or defaultTableModel
    returns true always.
    thanks

  • How to change JTable column header text

    How do you set the text in the JTable column headers? I know you can create a JTable specifying the text in an array:
    <li>JTable(Object[][] rowData, Object[] columnNames)
    But if you create the JTable specifying a TableModel,
    <li>JTable(TableModel dm)
    the header text defaults to "A", "B", "C", etc. I cannot figure out how to access the text in the header names so it can be changed to something useful. I know how to get the JTableHeader for the table, but it does not seem to have methods for actually setting header values.

    I'm sure that model allows you to specify header values so you don't have to do so manually. I would be very surprised if it didn't override the default getColumnName() method to provide a reasonable names.She wasn't writing the class, but [url http://forums.oracle.com/forums/thread.jspa?messageID=9200751#9200751]outlining a design for me to implement. And, based on a previous comment I had made, I think she assumed I wanted the new design to look as much like the old as possible. There were no headers in the original design, which wasn't even a table.
    Anyway, this works:
        final static String statisticsColumnNames[] = {
         "Type", "Count",
         "Red QE", "Green QE", "Blue QE", "Average QE",
         "Distance"
         qErrors = new QEBeanTableModel();
         JTable errorTable = new JTable(qErrors);
         TableColumnModel tcm = errorTable.getColumnModel();
         for (int col = 0; col < statisticsColumnNames.length; col++)
             tcm.getColumn(col).setHeaderValue(statisticsColumnNames[col]);
    It looks like setHeaderValue() on the TableColumn is what I was looking for.Again, only used if you are dynamically changing the values at run time or you don't like the defaults provided by the Bean-aware model.I coded the above before I read your last post. The QEBeanTableModel is extremely specific to my program. I.e. I cannot imagine it being used anywhere else. Would it still be better to implement a getColumnName() within the table model? Looking at your [url http://www.camick.com/java/source/RowTableModel.java]RowTableModel.java source, I can see that it would not be difficult to do so.
    Just decided to add the getColumnName() method. This whole sub-project is based on implementing a clean modern design (and learning about Java Beans). You've clearly stated twice that the method I have implemented is for dynamic header values only, which has already answered what I asked last paragraph.

  • How to disable certain columns of a Table?

    hi all,
    I wish to fill a pattern of 8 digital signals (only 1's & 0's) in a Table.
    Is there any way to restrict the user from typing char or num other than a 1 or a 0?
    Since the table is a string, I'm having confusion how to do this.
    Secondly, the table would have by default 12 columns visible on the Front Panel, excluding both the headers.
    But the No. of Columns is based on a parameter called Duration that ranges between 4 & 256.
    What I want the user to do is to key in 1's & 0's for the Duration chosen.
    Since it'll be tedious to key in for large values of Duration, I've given the option of Set Row(s) & Reset Row(s),
    that will fill with either 1 or 0 respectively for the chosen Row Value.
    Is there any way to disable the remaining columns of the Table, ie, those unfilled columns,
    when the user scrolls horizontally? I don't know how to achieve this.
    I went thro' the Properties of the Table, I don't understand some of their functionalities,
    like SelStart, SelSize etc.
    I wonder why a Property like Disable Array Elements for Arrays is not provided for a Table
    to Disable the columns we want to do so, or is it my gross ignorance, I don't know.
    Experts pls clarify me & help me out.
    Regards,
    Partha.
    - Partha
    LabVIEW - Wires that catch bugs!
    Attachments:
    Set Eventframe1.vi ‏409 KB

    Another option is to do this:
    Slightly more elegant, but also more potential for bugs (e.g. the users can tab into the column).
    craigdobis wrote:
    You can lower your overhead by using these "professional" looking indicators and controls. They are limited in functions and properties, thereby causing a smaller VI in file size.
    Nice. I didn't think about that. Looks like a VI with a single system boolean takes ~20% less space than one with a standard boolean.
    P.S. In general, I would say there are considerably better arguments for using system controls than memory issues.
    Try to take over the world!
    Attachments:
    Disabled Column.png ‏5 KB

  • How to disable a column in matrix

    Hi All,
                How to make a column in matrix disable in runtime...this is the coding iam using...but iam unable to find to disable that column.
    Dim objWasType As EditText
    objMatDet = objForm.Items.Item("MatDet").Specific
    objWasType = objMatDet.Columns.Item("col_3").Cells.Item(pVal.Row).Specific
    <--i want like this option,but it doesn't have that property-->
    ''objWasType.Disable =true
    <--i want like this option,but it doesn't have that property--> 
    Regards,
    shangai.

    hi petr,
               i don't want to disable the matrix....only i want to disable a particular column in matrix on the selection of one combobox event.....
    Ex:-In a combobox '2' selections are there & in matrix ''2'' columns are there...if 1st selection(in combobox) is selected then in the matrix second column should be disabled & if 2nd selection(in combobox) is selected then in the matrix first column should be disabled.
    i have tried this line...
    objMatDet.Columns.Item("col_1").Editable= False
    but after this change it work fine....thenagain next time when i stop the debug mode of my project & again when i run my project the '2' columns are ALWAYS UNEDITABLE....(i,e the change occured has became constant)...is there any solution ot make the fields uneditable only on the selection event....
    regards,
    shangai

  • How to resizea JTable column to fit to text programatically?

    hi evreyone,
    i'm trying to resize a JTable column width to fit to the contained text programatically.my approach was that i made a comparison between the length of String objects contained in my column and got the biggest String length value but i want to know how can i resize the column to fit to this biggest String object

    You're going the wrong way about it - don't go calculating string lengths. Get the TableCellRenderer, query it for the renderer component for each cell in the column, obtain its preferred size and keep a record of the greatest width value.

  • How to set JTable column's color?

    How can I set JTable Columns' color? I only found this class DefaultTableCellRenderer
    which can set cell's color.

    rmalina wrote:
    You are going to need to derive a renderer class for your Column from DefaultTableCellRenderer and override the following function with something like this:
    @Override
         public Component getTableCellRendererComponent(JTable jTable, Object oValue, boolean isSelected, boolean hasFocus, int nRow, int nColumn) {
    super.setForeground(Color.GREEN);
    super.setBackground(Color.GREEN);
    }That would set your column to green.
    Edited by: rmalina on Jul 28, 2008 8:47 AMHow can I know I only change the columns' color instead of other cells?

  • How to disable a column in Advance Table

    Hi All,
    I have an advance table, for which one of the column is MessageTextInput I want to disable this column programatically on certain condition for a particular row, is this should be implemented by switcher else is there a better way.
    Thanks in advance

    switcher is the best way to implement this problem.
    You can also use SPEL expression, which is very easy to implement.
    Eg,
    Set the SPEL expression for readOnly property as ${ReadOnlyFlag} // where readOnlyflag is a boolean attribute in the VO of respective region.
    --Prasanna                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • How to disable a Column for a particular row in Advanced Tables

    Hi All,
    We are using an Advanced Table for search criteria. Our requirement demands to disable a column (we are using messagechoice item in that column) for only first row. We use standard Add Another Row functionality to add the rows.For the remaining rows it (message choice) should be enabled. Can anyone help me to solve.
    Regards,
    Sundeep

    You can either use a Switcher or OADataBoundVariables for this.
    Please see the section OADataBoundVariable in the dev guide. Based on certain View Attribute value, you can set the specific column in the table as Read Only.
    Switcher can be very similar too. Decide an Attribute for the Switcher and make sure the first row (which you want to disable) has some specific value. All other rows should have some other value. Decode can help you here. Then you would need to create two cases. Under the specific to first row, have a read only item. For the other case, have an enterable item. A little read through of the Switcher chapter in the Dev guide would clarify the doubts if any.
    Regards
    Sumit

  • How to disable moving Columns in JTable

    Hi,
    How can I make sure that the columns in my JTable cannot be moved?
    Any ideas?
    thanks

    How about:myTable.getTableHeader().setReorderingAllowed(false);

  • How to disable some "columns to display"?

    Hello!
    I have one management pack (it's monitor some our network devices), which was written by contractors for our company. This mp have many unnecessary columns in it's view. I deleted some of these <ColumnInfo> 
    from mp (.xml file). Then I import mp but these columns
    have not disappeared.
    Can anybody help me? What should I do to remove these columns?
    P.S. I know that I can disable them with "Personalize view", but I want to do it
    centralized (all of the console users must see these changes).

    Hi,
    Since the MP was written by contractors, it is better to contact them edit the column.
    Meanwhile, after importing the management pack, please re-create monitor for
    a test.
    Niki Han
    TechNet Community Support

  • How to size JTable Column width?? Need help

    Using the following logic to size column width, but only the 1st column is sized. How can I get the other columns sized??
    int widthsSummary[] = {340,60,150,60,60};
    for (int i=0; i<1; i++)
    column = getScrollPaneTableSummary).getColumnModel ().getColumn(i);
    column.setMinWidth(widthsSummary);
    column.setMaxWidth(widthsSummary[i]+50);
    column.setPreferredWidth(widthsSummary[i]);          

    First, take a look at your for loop
    for (int i=0; i<1; i++)i starts at 0 and cannot be equal to or greater than 1. This loop will only occur once, when i = 0.
    Second, take a look at your set...Width calls
    column.setMinWidth(widthsSummary);
    column.setMaxWidth(widthsSummary+50);
    column.setPreferredWidth(widthsSummary); widthsSummary is an array. You need a number to set widths. Try ...set...width(widthsSummary);
    Hope that helps.

  • How to set jtable column width

    Hello..
    I 'm using a simple jtable with the default model. I just want to set each column size to make table smaller Is this possible?
    Thanks
    Feras

    newdeveloper wrote:
    Hello..
    I 'm using a simple jtable with the default model. I just want to set each column size to make table smaller Is this possible?
    Thanks
    FerasI think that your problem probably has more to do with the Layout you're using (or not using) than it does with individual column sizes. What layout are you using?
    What happens when you set the size (or preferredSize, minimumSize, and maximumSize) on the whole JTable?
    You might also be looking for JTable.[getColumnModel()|http://download-llnw.oracle.com/javase/6/docs/api/javax/swing/JTable.html#getColumnModel%28%29].[getColumn()|http://download-llnw.oracle.com/javase/6/docs/api/javax/swing/table/TableColumnModel.html#getColumn%28int%29].[setPreferredWidth()|http://download-llnw.oracle.com/javase/6/docs/api/javax/swing/table/TableColumn.html#setPreferredWidth%28int%29].
    If none of those approaches work, post an SSCCE that demonstrates the problem.
    PS- Swing questions belong in the Swing forum.

Maybe you are looking for

  • Ipad won't update apps

    Thought I'd post this in case anyone else is running into the same issue... My iPad kept showing that there were lots of Apps to update (72 in my case!).  I used the Update All in the App Store, but my iPad never finished updating despite waiting hou

  • Can one use an iMac as a small business server?

    Small business. Less than 10 users. Needs: File server. FTP server. Web server for small blog. Running OS Server and all that is has to offer. Open office, so noise from server is an issue. Is the iMac an option as a dedicated server?

  • Motion 3 wont open

    i upgraded to snow leopard last night and now motion gives me errors when it trys to open, HELP!!!! [email protected]

  • Web Service Job Parameters with Job Actions

    I have a set of web service jobs for which I am supplying input parameters. This works fine when defined against a single particular job but i have a need to insert this job based upon a job event and pull some information off of the job the had the

  • 6710b HD santized due to virus, need help!

    Dear Cheryl, Dave, Mumba, anyone..... As the subject stated, due to a virus which I could not clean, I did a disk sanitize....(and did it well!) Anyway thanks to you guys and earlier post from over a year ago, I found your advice and walked through t