import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import com.zfqjava.swing.*;
import com.zfqjava.swing.cell.*;
public class LockDemo extends JDataGridBean {
public LockDemo() {
super();
configure();
}
private void configure() {
JDataGrid dataGrid = getDataGrid();
dataGrid.setRowHeight(40);
dataGrid.setModel(createModel());
JDataGrid columnHeader = createColumnHeader();
// remove the default column header
dataGrid.setTableHeader(null);
// add a datagrid as column header
dataGrid.setColumnHeaderView(columnHeader);
JDataGrid rowHeader = createRowHeader();
// remove the default row header
dataGrid.setRowHeader(null);
// add a datagrid as row header
dataGrid.setRowHeaderView(rowHeader);
}
public static void main(String[] args) {
final LockDemo demo = new LockDemo();
demo.setDefaultCloseOperation(JBean.EXIT_ON_CLOSE);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
demo.showFrame();
demo.getDataGrid().requestFocus();
}
});
}
private JDataGrid createRowHeader() {
JDataGrid dataGrid = new JDataGrid();
dataGrid.setCellSelectionEnabled(true);
dataGrid.setEditable(false);
dataGrid.setBackground(UIManager.getColor("TableHeader.background"));
DataGridModel model = new DefaultDataGridModel(11, 2);
model.setValueAt("Month", 0, 1);
model.setValueAt("Name", 1, 0);
model.setValueAt("Scene", 1, 1);
model.setValueAt("Crofton", 2, 0);
model.setValueAt("Actual", 2, 1);
model.setValueAt("Bugdet2004", 3, 1);
model.setValueAt("LE1", 4, 1);
model.setValueAt("Elk Falls", 5, 0);
model.setValueAt("Actual", 5, 1);
model.setValueAt("Bugdet2004", 6, 1);
model.setValueAt("LE1", 7, 1);
model.setValueAt("Powel River", 8, 0);
model.setValueAt("Actual", 8, 1);
model.setValueAt("Bugdet2004", 9, 1);
model.setValueAt("LE1", 10, 1);
model.merge(new Cell(2, 4, 0, 0));
model.merge(new Cell(5, 7, 0, 0));
model.merge(new Cell(8, 10, 0, 0));
dataGrid.setModel(model);
return dataGrid;
}
private JDataGrid createColumnHeader() {
JDataGrid dataGrid = new JDataGrid();
dataGrid.setCellSelectionEnabled(true);
dataGrid.setEditable(false);
dataGrid.setBackground(UIManager.getColor("TableHeader.background"));
DataGridModel model = new DefaultDataGridModel(1, 12);
model.setValueAt("Q1", 0, 0);
model.setValueAt("Q2", 0, 3);
model.setValueAt("Q3", 0, 6);
model.setValueAt("Q4", 0, 9);
model.merge(new Cell(0, 0, 0, 2));
model.merge(new Cell(0, 0, 3, 5));
model.merge(new Cell(0, 0, 6, 8));
model.merge(new Cell(0, 0, 9, 11));
dataGrid.setModel(model);
return dataGrid;
}
protected DataGridModel createModel() {
DataGridModel model = new DefaultDataGridModel(11, 12);
String[] months = {"01 JAN", "02 FEB", "03 MAR",
"04 APR", "05 MAY", "06 JUN",
"07 JUL", "08 AUG", "09 SEP",
"10 OCT", "11 NOV", "12 DEC"};
String quantity = "Quantity
Del Pr US$/t";
// some test data
String data = "23
100";
SimpleAttributeSet a = new SimpleAttributeSet();
StyleConstants.setBackground(a, UIManager.getColor("TableHeader.background"));
for(int i=0; i<12; i++) {
model.setValueAt(months[i], 0, i);
model.setCellAttributes(a, 0, i);
model.setValueAt(quantity, 1, i);
model.setCellAttributes(a, 1, i);
for(int j=2; j<11; j++) {
model.setValueAt(data, j, i);
}
}
return model;
}
}