swing/samples/net/sf/xframe/swing/demo JXTableDemo4.java,NONE,1.1
Kurt Riede <[email protected]> Sat, 09 Apr 2005 15:53:44 +0000
| Newsgroups | gmane.text.xml.xframe.xsddoc.devel |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/xframe/swing/samples/net/sf/xframe/swing/demo
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3360/samples/net/sf/xframe/swing/demo
Added Files:
JXTableDemo4.java
Log Message:
new tests to demonstrate usage of method prepareRenderer() and class DefaultJXTableCellRenderer
--- NEW FILE: JXTableDemo4.java ---
package net.sf.xframe.swing.demo;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableModel;
import net.sf.xframe.swing.JXTable;
/**
* Demonstrates the use of method
* {@link net.sf.xframe.swing.JXTable#prepareRenderer prepareRenderer}.
*
* @author <a href=mailto:[email protected]>Kurt Riede</a>
*/
public final class JXTableDemo4 {
/**
* Static main method.
* @param args arguments
*/
public static void main(final String[] args) {
new JXTableDemo4().run();
}
/**
* Our own table model.
*/
private final class MyTableModel extends DefaultTableModel {
private MyTableModel(final int rowCount, final int columnCount) {
super(rowCount, columnCount);
}
public boolean isCellEditable(final int row, final int column) {
return ((row + column) % 2) == 0;
}
}
/**
* Run the demo.
*/
public void run() {
// create the demo frame
final JFrame frame = new JFrame("JXTable Demo");
final BorderLayout layout = new BorderLayout();
frame.getContentPane().setLayout(layout);
// create and add the table
final TableModel model1 = new MyTableModel(15, 23);
final TableModel model2 = new MyTableModel(15, 13);
final JXTable table = new JXTable(model1, 3) {
public Component prepareRenderer(final TableCellRenderer renderer, final int row, final int column) {
final Component c = super.prepareRenderer(renderer, row, column);
final int col = getColumnModel().getColumn(column).getModelIndex();
if (((row + col) % 2) != 0) {
c.setBackground(Color.LIGHT_GRAY);
} else {
c.setBackground(Color.WHITE);
}
return c;
}
};
table.setModel(model2);
table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
frame.getContentPane().add(table, BorderLayout.CENTER);
// create some buttons to change the number of frozen columns
final JPanel buttonPanel = new JPanel();
frame.getContentPane().add(buttonPanel, BorderLayout.NORTH);
buttonPanel.setLayout(new FlowLayout());
for (int i = 0; i < 10; i++) {
final JButton button = new JButton("Freeze " + i);
final int num = i;
button.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
table.setFrozenColumns(num);
}
});
buttonPanel.add(button);
}
// set size, center and show the demo frame
frame.setSize(650, 300);
final Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
final Dimension frameSize = frame.getSize();
frame.setLocation((screen.width - frameSize.width) / 2, (screen.height - frameSize.height) / 2);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click