public static void scrollToVisible(JTable table, int rowIndex, int vColIndex) { if (!(table.getParent() instanceof JViewport)) { return; } JViewport viewport = (JViewport)table.getParent(); // This rectangle is relative to the table where the // northwest corner of cell (0,0) is always (0,0). Rectangle rect = table.getCellRect(rowIndex, vColIndex, true); // The location of the viewport relative to the table Point pt = viewport.getViewPosition(); // Translate the cell location so that it is relative // to the view, assuming the northwest corner of the // view is (0,0) rect.setLocation(rect.x-pt.x, rect.y-pt.y); table.scrollRectToVisible(rect); }
Showing posts with label jtable. Show all posts
Showing posts with label jtable. Show all posts
Thursday, May 30, 2013
JTable Scrolling to a specified row index java
A Simple JTable Example Java Code Program
import java.awt.Color;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.JComboBox;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableColumn;
import javax.swing.DefaultCellEditor;
public class TableExample {
//Note: Typically the main method will be in a
//separate class. As this is a simple one class
//example it's all in the one class.
public static void main(String[] args) {
//Use the event dispatch thread for Swing components
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new TableExample();
}
});
}
public TableExample() {
JFrame guiFrame = new JFrame();
//make sure the program exits when the frame closes
guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
guiFrame.setTitle("Creating a Table Example");
guiFrame.setSize(700, 200);
//This will center the JFrame in the middle of the screen
guiFrame.setLocationRelativeTo(null);
//Create the JTable using the ExampleTableModel implementing
//the AbstractTableModel abstract class
JTable table = new JTable(new ExampleTableModel());
//Set the column sorting functionality on
table.setAutoCreateRowSorter(true);
//Uncomment the next line if you want to turn the grid lines off
// table.setShowGrid(false);
//Change the colour of the table - yellow for gridlines
//blue for background
table.setGridColor(Color.YELLOW);
table.setBackground(Color.CYAN);
//String array to populate the combobox options
String[] countries = {"Australia", "Brazil", "Canada", "China"
, "France", "Japan", "Norway", "Russia", "South Korea"
, "Tunisia", "USA"};
JComboBox countryCombo = new JComboBox(countries);
//Set the default editor for the Country column to be the combobox
TableColumn countryColumn = table.getColumnModel().getColumn(2);
countryColumn.setCellEditor(new DefaultCellEditor(countryCombo));
//set the Event column to be larger than the rest and the Place column
//to be smaller
TableColumn eventColumn = table.getColumnModel().getColumn(3);
eventColumn.setPreferredWidth(150);
TableColumn placeColumn = table.getColumnModel().getColumn(4);
placeColumn.setPreferredWidth(5);
//Place the JTable object in a JScrollPane for a scrolling table
JScrollPane tableScrollPane = new JScrollPane(table);
guiFrame.add(tableScrollPane);
guiFrame.setVisible(true);
}
//implement a table model by extending a class to use
//the AbstractTableModel
class ExampleTableModel extends AbstractTableModel {
//Two arrays used for the table data
String[] columnNames = {"First Name", "Surname", "Country"
, "Event", "Place", "Time", "World Record"};
Object[][] data = {
{"Pritom Kumar Mondal", "pritom", "Bangladesh", "50m freestyle", 1, "21.30", false},
{"Pallob", "pallob", "Bangladesh", "50m freestyle", 2, "21.45", false}
};
@Override
public int getRowCount() {
return data.length;
}
@Override
public int getColumnCount() {
return columnNames.length;
}
@Override
public Object getValueAt(int row, int column) {
return data[row][column];
}
//Used by the JTable object to set the column names
@Override
public String getColumnName(int column) {
return columnNames[column];
}
//Used by the JTable object to render different
//functionality based on the data type
@Override
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
@Override
public boolean isCellEditable(int row, int column) {
if (column == 0 || column == 1) {
return false;
} else {
return true;
}
}
}
}
http://java.about.com/od/Creating-Tables/ss/A-Simple-Table-Example-Java-Code-Program.htm
Subscribe to:
Comments (Atom)