/* * @(#)TabulatorDemo.java 0.0.0 99/07/21 * * Copyright (c) 1999 by Willie Wheeler. All rights reserved. */ package stats.demos; import java.util.*; import javax.swing.*; import stats.*; /** * Demonstrates the use of the Tabulator data filter. * * @version 0.0.0 07/21/99 * @author Willie Wheeler */ public class TabulatorDemo extends JApplet { public void init() { ConcretePLAF.install(); // Build and add a desktop pane. JDesktopPane desktop = new JDesktopPane(); setContentPane(desktop); // Build a data table. Vector vars = new Vector(); vars.add(new TextVariable("Sex", new String[] { "Male", "Female" })); vars.add(new TextVariable("Hair color", new String[] { "Black", "Brown", "Blond", "Red" })); vars.add(new TextVariable("Smoker?", new String[] { "Yes", "No" })); DataTableModel dtm = new DataTableModel(vars, 0); dtm.addRow(convertToVector(new int[] { 0, 3, 1 })); dtm.addRow(convertToVector(new int[] { 1, 3, 1 })); dtm.addRow(convertToVector(new int[] { 1, 2, 1 })); dtm.addRow(convertToVector(new int[] { 0, 1, 0 })); dtm.addRow(convertToVector(new int[] { 0, 0, 1 })); dtm.addRow(convertToVector(new int[] { 1, 2, 1 })); dtm.addRow(convertToVector(new int[] { 0, 3, 1 })); JInternalFrame frame; // Build and frame a JTable. frame = new JInternalFrame("Data Table", true, true, true, true); frame.setBounds(10, 10, 300, 300); frame.getContentPane().add(new JScrollPane(new JTable(dtm))); desktop.add(frame); // Build a tabulator. Tabulator tab = new Tabulator(dtm); // Get a contingency table. ContingencyTableModel tabOut = tab.getDataOut(); // Build and frame a JTable. frame = new JInternalFrame("Contingency Table", true, true, true, true); frame.setBounds(320, 10, 300, 300); frame.getContentPane().add(new JScrollPane(new JTable(tabOut))); desktop.add(frame); // // Build and frame five charts. // BarChart chart; // chart = new BarChart(tabOut, new int[] { 2 }, 1); // frame = new JInternalFrame("Bar Chart", true, true, true, true); // frame.setBounds(10, 320, 200, 200); // frame.getContentPane().add(new ChartWrapper(chart)); // desktop.add(frame); // chart = new BarChart(tabOut, // new int[] { 2 }, // 1, // new int[] { 0, -1, -1 }); // frame = new JInternalFrame("Bar Chart", true, true, true, true); // frame.setBounds(110, 320, 200, 200); // frame.getContentPane().add(new ChartWrapper(chart)); // desktop.add(frame); // chart = new BarChart(tabOut, // new int[] { 2 }, // 1, // new int[] { 0, 0, -1 }); // frame = new JInternalFrame("Bar Chart", true, true, true, true); // frame.setBounds(210, 320, 200, 200); // frame.getContentPane().add(new ChartWrapper(chart)); // desktop.add(frame); // chart = new BarChart(tabOut, // new int[] { 1, 2 }, // 1, // new int[] { -1, -1, -1 }); // chart.setAutoScale(true); // frame = new JInternalFrame("Bar Chart", true, true, true, true); // frame.setBounds(310, 320, 200, 200); // frame.getContentPane().add(new ChartWrapper(chart)); // desktop.add(frame); // chart = new BarChart(tabOut, // new int[] { 1, 2 }, // 1, // new int[] { 1, -1, -1 }); // chart.setAutoScale(true); // chart.setNumRangeGroups(10); // frame = new JInternalFrame("Bar Chart", true, true, true, true); // frame.setBounds(410, 320, 200, 200); // frame.getContentPane().add(new ChartWrapper(chart)); // desktop.add(frame); } protected Vector convertToVector(int[] intArray) { Vector vec = new Vector(); for (int i = 0; i < intArray.length; i++) { vec.add(new Integer(intArray[i])); } return vec; } }