dcsimg
Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Language: Java
Expertise: Intermediate
Jan 6, 2000

WEBINAR:

On-Demand

Building the Right Environment to Support AI, Machine Learning and Deep Learning


Provide Data Tip For JTable Columns

Cell data in a table may exceed the width of its column. It is a good, user-friendly, idea to have ToolTips appear in a cell showing the entire cell data as the user brings the mouse over the cell. This can easily be done using JTable and a few lines of code. Here's how:
 
public class TippedTable extends JTable 
{ 
public TippedTable() 
{ 
this(null, null, null); 
} 
public TippedTable(TableModel tm) 
{ 
this(tm, null, null); 
} 
public TippedTable(TableModel tm, TableColumnModel tcm) 
{ 
this(tm, tcm, null); 
} 
public TippedTable(TableModel tm, TableColumnModel tcm, ListSelectionModel lsm) 
{ 
super(tm,tcm,lsm); 
} 
public TippedTable(int numRows, int numColumns) 
{ 
this(new DefaultTableModel(numRows, numColumns)); 
} 
public TippedTable(final Vector rowData, final Vector columnNames) 
{ 
super( rowData, columnNames ); 
} 
public TippedTable(final Object[][] rowData, final Object[] columnNames) 
{ 
super( rowData, columnNames ); 
} 

public String getToolTipText(MouseEvent event) 
{ 
int row = rowAtPoint(event.getPoint()); 
int col = columnAtPoint(event.getPoint()); 
Object o = getValueAt(row,col); 
if( o == null ) 
return null; 
if( o.toString().equals("") ) 
return null; 
return o.toString(); 
} 

public Point getToolTipLocation(MouseEvent event) 
{ 
int row = rowAtPoint( event.getPoint() ); 
int col = columnAtPoint( event.getPoint() ); 
Object o = getValueAt(row,col); 
if( o == null ) 
return null; 
if( o.toString().equals("") ) 
return null; 
Point pt = getCellRect(row, col, true).getLocation(); 
pt.translate(-1,-2); 
return pt; 
} 
} 
Let's use our little class, in the method that launches the frame to hold the TippedTable:
 
JFrame frame = new JFrame("Table Example"); 
Object[][] rowData = new Object[1][3]; 
rowData[0][0]="very long data to be tipped here"; 
rowData[0][1]="If that was not tip enough try this"; 
rowData[0][2]="This is the last row of this tip, take care and good night"; 
Object[] columnNames = new Object[3]; 
for(int i=0; i<3; i++) 
{ 
columnNames[i]="Column "+i; 
} 

TippedTable tTable = new TippedTable(rowData,columnNames); 
JScrollPane jsp = new JScrollPane(tTable); 
frame.getContentPane().add(jsp); 

frame.pack(); 
frame.show();
There you have it: a ToolTip on a Table Cell with data.
Behrouz Fallahi
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date