Improve company productivity with a Business Account.Sign Up

x
?
Solved

A question about JTables

Posted on 2000-03-11
5
Medium Priority
?
305 Views
Last Modified: 2008-03-03
Is there anyway to add a JTable to an Applet so that if there are a lot of items on the table it adds a horizontal scroll bar and does not resize all of the columns so that it fits the applets area.  

Also is there any way that I can lock a column so that it stays on the screen even when the user scrolls to columns that are not on the view.  

I would be grateful for all help offered regarding this.

Thanks in advance

John
0
Comment
Question by:johnclarke
5 Comments
 
LVL 8

Expert Comment

by:diakov
ID: 2608009
The Applet is a Panel. Add to this panel a JScrollPane, then add to the JSCrollPane the JTable.

On the JTable object call the

setAutoResizeMode(SwingConstants.AUTO_RESIZE_OFF);

I hink this should do it. Tell me if this does not work for your code.

Cheers,
  Nik
0
 

Author Comment

by:johnclarke
ID: 2611500
I would like all of the columns to be resized to the width of the largest item in that column.  

I would also like to be able to lock one of the columns so that it is always visible in the view even when I have scrolled all the way to the end of the JTable.

I would be grateful for all advice offered regarding this.

Thanks in advance.

John
0
 

Expert Comment

by:WilliamCHall
ID: 2621161
I've created the following method for creating a table that creates scrollbars automatically if the columns become too wide for the scrollpane.  I believe the tblResults.setAutoResizeMode(JTable.AUTO_RESIZE_OFF) line causes this type of action.  As for your second question, I've never done such a thing.

  public void CreateTable() {
      Object[] columnNames= {"Year", "Income", "Expenses", "Cashflow"};

        //Instantiate table
        Table tblResults = new JTable();
        tblResults.setRequestFocusEnabled(false);
        tblResults.setModel(new DefaultTableModel());
          if( tblResults.getModel() instanceof DefaultTableModel )
          {
            ((DefaultTableModel)tblResults.getModel()).setColumnIdentifiers(columnNames);
            int cols = tblResults.getModel().getColumnCount();
          }
        tblResults.setPreferredScrollableViewportSize(new Dimension(200, 200 ));

        //Add table to scroll pane

        JViewport jv = new JViewport();
        tblResults.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        jv.setView(tblResults);
        if (tblResults != null) {
          scpResultsTable.setViewport(jv);
          scpResultsTable.getViewport().add(tblResults, null);
        }
      TableColumn column = tblResults.getColumnModel().getColumn(0);
      column.setPreferredWidth(160);
  }
0
 
LVL 3

Accepted Solution

by:
ovidiucraciun earned 800 total points
ID: 2723037
I'll answer you to the second question.
It is not posible with a single call ;)
You must build an workaround: When the user srolls you must change the original position the "locked" column
in that way it will be visible.

see this:
public void moveColumn(int column,
                       int targetColumn)


0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

After being asked a question last year, I went into one of my moods where I did some research and code just for the fun and learning of it all.  Subsequently, from this journey, I put together this article on "Range Searching Using Visual Basic.NET …
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
The viewer will learn how to implement Singleton Design Pattern in Java.
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.

588 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question