renderpack
Project home
Notice: the projects area will be down for network maintenance from 8 pm to 10 pm PDT, Saturday 7/28. We regret any inconvenience.
If you were registered and logged in, you could join this project.
Great looking lists, tables, and menus
Swing has a very powerful support for renderers. Renderpack provides
some great looking, easy to use renderers for use in your project.
HTMLTableCellRenderer
An easy to use renderer for displaying HTML in a JTable.
| Usage Example: |
|---|
class ComponentRenderer extends HTMLTableCellRenderer {
public ComponentRenderer() {
super(true);
styleSheet.addRule("body { font-family: sans-serif }");
styleSheet.addRule(".javaclass { color:navy; font-size: 14; text-align: center }");
styleSheet.addRule(".attributes { font-size: 12 }");
styleSheet.addRule(".details { color: rgb(102, 102, 102); font-size: 10 }");
}
public void writeObject(StringBuffer buffer, JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
// render the value as HTML
JComponent component = (JComponent)value;
buffer.append("<html><body>");
buffer.append("<div class='javaclass'>" + component.getClass().getName() + "</div>");
buffer.append("<div class='attributes'>Height: " + component.getHeight() + "</div>");
if(component.hasFocus()) buffer.append("<div class='attributes'><i>Focused</i></div>");
buffer.append("<div class='details'>" + component.toString() + "</div>");
buffer.append("</body></html>");
}
}
|
StripedTableCellRenderer
An easy to use renderer that adds ledger-like stripes to any other renderer.
| Usage Example: |
|---|
TableCellRenderer striped = new StripedTableCellRenderer(new Color(204, 255, 204), Color.WHITE);
table.getColumnModel().getColumn(0).setCellRenderer(striped);
|
DateTableCellRenderer
Renders dates using the syntax from SimpleDateFormat.
| Usage Example: |
|---|
DateTableCellRenderer dateRenderer = new DateTableCellRenderer("EEEE MMMM dd, yyyy");
customersTable.getColumnModel().getColumn(0).setCellRenderer(dateRenderer);
|
Render Pipelines (PipelineListCellRenderer & PipelineTableCellRenderer)
Renders Objects using an array of RenderStages which each tweak the output a little bit.
RenderStages work when used with either a TableCellRenderer or ListCellRenderer.
| Usage Example: |
|---|
// An array of RenderStages that will show the username property of the being
// rendered and then put some Yellow/Pink stripes on it. And the selected row
// will be rendererd white.
RenderStage[] comboRenderers = new RenderStage[]{
new BeanRenderStage("username"),
new StripedRenderStage(Color.YELLOW, Color.PINK),
new SelectionRenderStage(Color.WHITE)
};
jComboBox.setRenderer(new PipelineListCellRenderer( comboRenderers) );
// An array of RenderStages that will show the year of the Date being rendered
// and put some Christmas stripes on it
RenderStage[] listRenderers = new RenderStage[]{
new DateRenderStage("yyyy"),
new StripedRenderStage(Color.RED, Color.GREEN)
};
jList.setCellRenderer(new PipelineListCellRenderer( listRenderers ) );
// An array of RenderStages that will show the year of the Date being rendered
// and put some Red/Blue stripes on it.
RenderStage[] columnOneRenderers = new RenderStage[] {
new DateRenderStage("yyyy"),
new StripedRenderStage(Color.RED, Color.BLUE)
};
jTable.getColumnModel().getColumn(0).setCellRenderer(
new PipelineTableCellRenderer(columnOneRenderers)
);
// An array of RenderStages that will show the username property of the
// bean being rendered and then puts some more lovely Yellow/Pink stripes on it.
RenderStage[] columnTwoRenderers = new RenderStage[] {
new BeanRenderStage("username"),
new StripedRenderStage(Color.YELLOW, Color.PINK)
};
jTable.getColumnModel().getColumn(1).setCellRenderer(
new PipelineTableCellRenderer(columnTwoRenderers)
);
|
ClassConciousEditorRenderer
This renderer/editor automatically applies the most appropriate TableCellRenderer
and TableCellEditor for each Object in your JTable by inspecting
the Object's class. By installing the ClassConciousEditorRenderer
into your JTable, the ClassConciousEditorRenderer sets itself
as the default editor and renderer for all cells. This is a simple alternative to
implementing getColumnClass() in your TableModel.
 |
 |
| Before ClassConciousEditorRenderer | After ClassConciousEditorRenderer |
| Usage Example: |
|---|
JTable jTable = new JTable(...);
ClassConciousEditorRenderer.install(jTable);
|
Download Latest
- renderpack.jar - a compiled jar file ready for your application's classpath.
- renderpack-source.zip - a recent snapshot of the Renderpack source tree. You'll find Ant targets for compiling, jaring, and generating Javadoc.
- CVS - checking out the latest source is the best way to be up-to-date.
Contribute
The Renderpack is a new project and is seeking additional renderers to improve
its collection. Please submit your renderer code, ideas and problems to the project
mailing list.