Programming Resources
For Fun and Learning
Charles Cusack
Computer Science
Hope College
main

Python
C++

JAVA


PHP
SQL
Assignments

VennDiagram


VennDiagram.java

/**
 * Title:
 * Description:
 * Copyright:    Copyright (c) 2001
 * Company:
 * @author
 * @version 1.0
 */

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.border.*;

public class VennDiagram extends JApplet {
  VennPanel vennPanel = new VennPanel();

  boolean isStandalone = false;
  BorderLayout borderLayout1 = new BorderLayout();
  JPanel northPanel = new JPanel();
  JPanel southPanel = new JPanel();
  JPanel centerPanel = new JPanel();
  BorderLayout borderLayout2 = new BorderLayout();
  JComboBox aDropDown = new JComboBox();
  JComboBox bDropDown = new JComboBox();
  JPanel buttonPanel = new JPanel();
  GridLayout gridLayout1 = new GridLayout();
  JLabel aLabel = new JLabel();
  JLabel bLabel = new JLabel();
  TitledBorder titledBorder1;
  ButtonGroup buttonGroup = new ButtonGroup();
  JRadioButton intersectionButton = new JRadioButton();
  JRadioButton unionButton = new JRadioButton();
  JRadioButton differenceButton = new JRadioButton();
  JRadioButton xorButton = new JRadioButton();
  JCheckBox complementButton = new JCheckBox();
  JRadioButton noneButton = new JRadioButton();
  /**Get a parameter value*/
  public String getParameter(String key, String def) {
    return isStandalone ? System.getProperty(key, def) :
      (getParameter(key) != null ? getParameter(key) : def);
  }

  /**Construct the applet*/
  public VennDiagram() {
  }
  /**Initialize the applet*/
  public void init() {
    aDropDown.addItem("Rectangle");
    aDropDown.addItem("Ellipse");
    aDropDown.addItem("Star");
    aDropDown.addItem("Triangle");

    bDropDown.addItem("Rectangle");
    bDropDown.addItem("Ellipse");
    bDropDown.addItem("Star");
    bDropDown.addItem("Triangle");
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
    FontFixer.setUIFont("Lucida Sans");
    SwingUtilities.updateComponentTreeUI(this);
  }
  /**Component initialization*/
  private void jbInit() throws Exception {
    titledBorder1 = new TitledBorder("");
    this.setSize(new Dimension(400,300));
    this.getContentPane().setLayout(borderLayout1);
    centerPanel.setBackground(Color.white);
    centerPanel.setBorder(BorderFactory.createLoweredBevelBorder());
    centerPanel.setLayout(borderLayout2);
    buttonPanel.setLayout(gridLayout1);
    gridLayout1.setRows(10);
    gridLayout1.setColumns(1);
    aDropDown.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        aDropDown_actionPerformed(e);
      }
    });
    bDropDown.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        bDropDown_actionPerformed(e);
      }
    });
    aLabel.setText("A:");
    bLabel.setText("B:");
    aDropDown.setForeground(vennPanel.shape1.getColor());
    bDropDown.setForeground(vennPanel.shape2.getColor());
    vennPanel.setBackground(new Color(124, 140, 0));
    intersectionButton.setText("A\u2229B");
    intersectionButton.setToolTipText("Intersection");
    intersectionButton.setForeground(Color.blue);
    intersectionButton.setFont(new java.awt.Font("Arial Unicode MS", 1, 12));
    intersectionButton.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        intersectionButton_actionPerformed(e);
      }
    });
    unionButton.setText("A\u222AB");
    unionButton.setToolTipText("Union");
    unionButton.setForeground(Color.blue);
    unionButton.setFont(new java.awt.Font("Arial Unicode MS", 1, 12));
    unionButton.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        unionButton_actionPerformed(e);
      }
    });
    differenceButton.setText("A-B");
    differenceButton.setToolTipText("Difference");
    differenceButton.setForeground(Color.blue);
    differenceButton.setFont(new java.awt.Font("Arial Unicode MS", 1, 12));
    differenceButton.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        differenceButton_actionPerformed(e);
      }
    });
    xorButton.setText("A\u2295B");
    xorButton.setToolTipText("XOR");
    xorButton.setForeground(Color.blue);
    xorButton.setFont(new java.awt.Font("Arial Unicode MS", 1, 12));
    xorButton.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        xorButton_actionPerformed(e);
      }
    });
    complementButton.setText("Not");
    complementButton.setToolTipText("Complement");
    complementButton.setFont(new java.awt.Font("Arial Unicode MS", 1, 12));
    complementButton.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        complementButton_actionPerformed(e);
      }
    });
    noneButton.setSelected(true);
    noneButton.setText("None");
    noneButton.setFont(new java.awt.Font("Arial Unicode MS", 1, 12));
    noneButton.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        noneButton_actionPerformed(e);
      }
    });
    this.getContentPane().add(northPanel, BorderLayout.NORTH);
    northPanel.add(aLabel, null);
    northPanel.add(aDropDown, null);
    northPanel.add(bLabel, null);
    northPanel.add(bDropDown, null);
    this.getContentPane().add(southPanel, BorderLayout.SOUTH);
    this.getContentPane().add(centerPanel, BorderLayout.CENTER);
    centerPanel.add(vennPanel, BorderLayout.CENTER);
    this.getContentPane().add(buttonPanel, BorderLayout.WEST);
    buttonPanel.add(noneButton, null);
    buttonPanel.add(intersectionButton, null);
    buttonPanel.add(unionButton, null);
    buttonPanel.add(differenceButton, null);
    buttonPanel.add(xorButton, null);
    buttonPanel.add(complementButton, null);
    buttonGroup.add(intersectionButton);
    buttonGroup.add(unionButton);
    buttonGroup.add(differenceButton);
    buttonGroup.add(xorButton);
    buttonGroup.add(noneButton);
  }
  /**Get Applet information*/
  public String getAppletInfo() {
    return "Applet Information";
  }
  /**Get parameter info*/
  public String[][] getParameterInfo() {
    return null;
  }

  //static initializer for setting look & feel
  static {
    try {
      //UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
      //UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
    }
    catch(Exception e) {
    }
  }

  void noneButton_actionPerformed(ActionEvent e) {
    vennPanel.setOperation(VennPanel.NONE);
  }

  void intersectionButton_actionPerformed(ActionEvent e) {
    vennPanel.setOperation(VennPanel.INTERSECTION);
  }

  void unionButton_actionPerformed(ActionEvent e) {
    vennPanel.setOperation(VennPanel.UNION);
  }

  void differenceButton_actionPerformed(ActionEvent e) {
    vennPanel.setOperation(VennPanel.DIFFERENCE);
  }

  void xorButton_actionPerformed(ActionEvent e) {
    vennPanel.setOperation(VennPanel.XOR);
  }

  void aDropDown_actionPerformed(ActionEvent e) {
    vennPanel.shape1.setType(aDropDown.getSelectedIndex());
    vennPanel.repaint();
  }

  void bDropDown_actionPerformed(ActionEvent e) {
    vennPanel.shape2.setType(bDropDown.getSelectedIndex());
    vennPanel.repaint();
  }

  void complementButton_actionPerformed(ActionEvent e) {
    if(complementButton.isSelected())
      vennPanel.complement = true;
    else
      vennPanel.complement = false;
    vennPanel.repaint();
  }

}