From 76ea152c717e35e1fdc4d19d4124b935e4027991 Mon Sep 17 00:00:00 2001 From: josh Date: Thu, 1 Oct 2009 22:55:51 +0000 Subject: [PATCH] modified RetirementCalculator class to work as an applet or a stand-alone java application git-svn-id: svn://anubis/gvsu@430 45c1a28c-8058-47b2-ae61-ca45b979098e --- cs623/proj1/Makefile | 8 +++- cs623/proj1/RetirementCalculator.java | 54 ++++++++++++++++++++++++++- 2 files changed, 59 insertions(+), 3 deletions(-) diff --git a/cs623/proj1/Makefile b/cs623/proj1/Makefile index 998ef90..74533ea 100644 --- a/cs623/proj1/Makefile +++ b/cs623/proj1/Makefile @@ -1,6 +1,12 @@ +MAINCLASS := RetirementCalculator + all: - javac RetirementCalculator.java + javac $(MAINCLASS).java + +.PHONY: run +run: + java $(MAINCLASS) clean: -rm -f *.class diff --git a/cs623/proj1/RetirementCalculator.java b/cs623/proj1/RetirementCalculator.java index 52862f2..98b49f4 100644 --- a/cs623/proj1/RetirementCalculator.java +++ b/cs623/proj1/RetirementCalculator.java @@ -1,15 +1,47 @@ import java.awt.*; +import java.awt.event.*; import javax.swing.*; import java.util.*; +/* + * The main work of the application is done in this JPanel-extending class. + * This allows the java class to be run as a stand-alone application or + * as an applet within a web browser. + */ +class RetirementCalculatorPanel extends JPanel implements ActionListener +{ + private JButton b; + + public RetirementCalculatorPanel() + { + setLayout(new BorderLayout()); + b = new JButton("Hi There"); + b.addActionListener(this); + add("South", b); + } + + public void actionPerformed(ActionEvent e) + { + b.setEnabled(false); + } +} + +/* + * The "main" class of this file allows the app to be run as an applet + * but also provides a "main" method to run as an application. + */ public class RetirementCalculator extends JApplet { + final static private String PROG_NAME = "Josh's Retirement Calculator"; + + RetirementCalculatorPanel panel; + public void init() { setLayout(new BorderLayout()); - JButton b = new JButton("Hi"); - add("South", b); + panel = new RetirementCalculatorPanel(); + add(panel, BorderLayout.CENTER); } public void destroy() @@ -23,4 +55,22 @@ public class RetirementCalculator extends JApplet public void stop() { } + + public static void main(String[] args) + { + javax.swing.SwingUtilities.invokeLater(new Runnable() { + public void run() + { + JFrame frame = new JFrame(PROG_NAME); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + RetirementCalculatorPanel panel = + new RetirementCalculatorPanel(); + frame.getContentPane().add(panel); + + frame.pack(); + frame.setVisible(true); + } + }); + } }