/* * @(#)MVDDemo.java 0.0.0 99/07/28 * * Copyright (c) 1999 by Willie Wheeler. All rights reserved. */ package stats.demos; import java.text.*; import java.util.*; import javax.swing.*; import javax.swing.event.*; import stats.*; /** * @version 0.0.0 07/28/99 * @author Willie Wheeler */ public class MVDDemo extends JApplet implements TableModelListener { protected static NumberFormat nf = NumberFormat.getNumberInstance(); static { nf.setMinimumFractionDigits(2); nf.setMaximumFractionDigits(2); } protected MVDTableModel model; public void init() { JDesktopPane desktop = new JDesktopPane(); setContentPane(desktop); // Independent variables. Vector independents = new Vector(); independents.add(new TextVariable("Sex", new String[] { "Male", "Female" })); independents.add(new TextVariable("Income", new String[] { "Low", "Medium", "High" })); independents.add(new TextVariable("Happiness", new String[] { "Low", "Medium", "High" })); // Dependent variables. Vector dependents = new Vector(); dependents.add(new IntegralVariable("Frequency")); dependents.add(new ContinuousVariable("Estimate")); // Model. model = new MVDTableModel(independents, dependents); model.addTableModelListener(this); // JTable. JTable table = new JTable(model); // JInternalFrame. JInternalFrame frame = new JInternalFrame("MVDTableModel", true, true, true, true); frame.getContentPane().add(new JScrollPane(table)); frame.setBounds(10, 10, 300, 300); desktop.add(frame); } public void tableChanged(TableModelEvent e) { // Fr(Happiness | Sex, Income). double[][] dists = model.getDistributions(0, new int[] { 2 }, new int[] { 0, 1 }); for (int i = 0; i < dists.length; i++) { for (int j = 0; j < dists[0].length; j++) { System.out.print(nf.format(dists[i][j]) + " "); } System.out.println(); } System.out.println("-----"); } }