Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Java > JTable and JScrollPane

Reply
Thread Tools

JTable and JScrollPane

 
 
helmut.teichmann@opb.de
Guest
Posts: n/a
 
      07-17-2007
Hi,

a very small demo to tell you my problem (I use Java 1.6).
I have a JTable with 11 columns in a smaller JScrollPane.
The problem is, that I can't put the column "10" between the columns
"8" and "9" with the mouse. It scrolls to the first column.
What is wrong with the JScrollPane.
It works fine with older versions of Java.

Who can help me?

####################

import java.awt.BorderLayout;
import javax.swing.*;

public class FixedTable
{
public static void main(String args[])
{
final Object rowData[][] = { { "1", "a", "b", "c", "d", "e", "f",
"g", "h", "i", "j" } };
final String columnNames[] = { "#", "1", "2", "3", "4", "5", "6",
"7", "8", "9", "10" };
TableModel mainModel = new AbstractTableModel()
{
public final static long serialVersionUID = 20003l;

public int getColumnCount()
{
return columnNames.length - 1;
}

public String getColumnName(int column)
{
return columnNames[column + 1];
}

public int getRowCount()
{
return rowData.length;
}

public Object getValueAt(int row, int column)
{
return rowData[row][column + 1];
}
};
JTable mainTable = new JTable(mainModel);
mainTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF );
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(mainTable);
JFrame frame = new JFrame("Fixed Table");
frame.setResizable(false);
frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
frame.setSize(300, 150);
frame.setVisible(true);
}
}

 
Reply With Quote
 
 
 
 
timjowers
Guest
Posts: n/a
 
      07-18-2007
On Jul 17, 10:18 am, (E-Mail Removed) wrote:
> Hi,
>
> a very small demo to tell you my problem (I use Java 1.6).
> I have a JTable with 11 columns in a smaller JScrollPane.
> The problem is, that I can't put the column "10" between the columns
> "8" and "9" with the mouse. It scrolls to the first column.
> What is wrong with the JScrollPane.
> It works fine with older versions of Java.
>
> Who can help me?
>
> ####################
>
> import java.awt.BorderLayout;
> import javax.swing.*;
>
> public class FixedTable
> {
> public static void main(String args[])
> {
> final Object rowData[][] = { { "1", "a", "b", "c", "d", "e", "f",
> "g", "h", "i", "j" } };
> final String columnNames[] = { "#", "1", "2", "3", "4", "5", "6",
> "7", "8", "9", "10" };
> TableModel mainModel = new AbstractTableModel()
> {
> public final static long serialVersionUID = 20003l;
>
> public int getColumnCount()
> {
> return columnNames.length - 1;
> }
>
> public String getColumnName(int column)
> {
> return columnNames[column + 1];
> }
>
> public int getRowCount()
> {
> return rowData.length;
> }
>
> public Object getValueAt(int row, int column)
> {
> return rowData[row][column + 1];
> }
> };
> JTable mainTable = new JTable(mainModel);
> mainTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF );
> JScrollPane scrollPane = new JScrollPane();
> scrollPane.setViewportView(mainTable);
> JFrame frame = new JFrame("Fixed Table");
> frame.setResizable(false);
> frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
> frame.setSize(300, 150);
> frame.setVisible(true);
> }
>
> }


You're right. That's busted in Java6. Did you find the bug yet? Surely
due to size calculation bug as commenting
//frame.setResizable(false);
and resizing larger than columns then it works fine.

TimJowers

 
Reply With Quote
 
 
 
 
timjowers
Guest
Posts: n/a
 
      07-18-2007
On Jul 17, 10:18 am, (E-Mail Removed) wrote:
> Hi,
>
> a very small demo to tell you my problem (I use Java 1.6).
> I have a JTable with 11 columns in a smaller JScrollPane.
> The problem is, that I can't put the column "10" between the columns
> "8" and "9" with the mouse. It scrolls to the first column.
> What is wrong with the JScrollPane.
> It works fine with older versions of Java.
>
> Who can help me?
>
> ####################
>
> import java.awt.BorderLayout;
> import javax.swing.*;
>
> public class FixedTable
> {
> public static void main(String args[])
> {
> final Object rowData[][] = { { "1", "a", "b", "c", "d", "e", "f",
> "g", "h", "i", "j" } };
> final String columnNames[] = { "#", "1", "2", "3", "4", "5", "6",
> "7", "8", "9", "10" };
> TableModel mainModel = new AbstractTableModel()
> {
> public final static long serialVersionUID = 20003l;
>
> public int getColumnCount()
> {
> return columnNames.length - 1;
> }
>
> public String getColumnName(int column)
> {
> return columnNames[column + 1];
> }
>
> public int getRowCount()
> {
> return rowData.length;
> }
>
> public Object getValueAt(int row, int column)
> {
> return rowData[row][column + 1];
> }
> };
> JTable mainTable = new JTable(mainModel);
> mainTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF );
> JScrollPane scrollPane = new JScrollPane();
> scrollPane.setViewportView(mainTable);
> JFrame frame = new JFrame("Fixed Table");
> frame.setResizable(false);
> frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
> frame.setSize(300, 150);
> frame.setVisible(true);
> }
>
> }


Not fixed in Java6 Update 2.

 
Reply With Quote
 
timjowers
Guest
Posts: n/a
 
      07-19-2007
On Jul 17, 10:18 am, (E-Mail Removed) wrote:
> Hi,
>
> a very small demo to tell you my problem (I use Java 1.6).
> I have a JTable with 11 columns in a smaller JScrollPane.
> The problem is, that I can't put the column "10" between the columns
> "8" and "9" with the mouse. It scrolls to the first column.
> What is wrong with the JScrollPane.
> It works fine with older versions of Java.
>
> Who can help me?
>
> ####################
>
> import java.awt.BorderLayout;
> import javax.swing.*;
>
> public class FixedTable
> {
> public static void main(String args[])
> {
> final Object rowData[][] = { { "1", "a", "b", "c", "d", "e", "f",
> "g", "h", "i", "j" } };
> final String columnNames[] = { "#", "1", "2", "3", "4", "5", "6",
> "7", "8", "9", "10" };
> TableModel mainModel = new AbstractTableModel()
> {
> public final static long serialVersionUID = 20003l;
>
> public int getColumnCount()
> {
> return columnNames.length - 1;
> }
>
> public String getColumnName(int column)
> {
> return columnNames[column + 1];
> }
>
> public int getRowCount()
> {
> return rowData.length;
> }
>
> public Object getValueAt(int row, int column)
> {
> return rowData[row][column + 1];
> }
> };
> JTable mainTable = new JTable(mainModel);
> mainTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF );
> JScrollPane scrollPane = new JScrollPane();
> scrollPane.setViewportView(mainTable);
> JFrame frame = new JFrame("Fixed Table");
> frame.setResizable(false);
> frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
> frame.setSize(300, 150);
> frame.setVisible(true);
> }
>
> }


Works for me in Java 5 and fails in java 6 and Java 6 Update 2.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Jscrollpane and jtable yashiro Java 2 05-17-2008 11:52 AM
Set size of JTable inside a JScrollPane Allan Valeriano Java 1 06-16-2007 05:22 AM
Putting a JTable inside a JTable cell? Tivo Escobar Java 1 04-12-2007 11:09 AM
How to move data from a CSV file to a JTable, and from a JTable to a CSV file ? Tintin92 Java 1 02-14-2007 06:51 PM
Integreating the JScrollPane to JTable Happy Day Java 5 08-17-2005 06:56 AM



Advertisments