/** * File: TickerDemo.java * Author: Brian Borowski * Date created: May 1999 * Date last modified: January 30, 2011 */ import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel; public class TickerDemo extends JApplet { private static final long serialVersionUID = 1L; private Ticker ticker; private JButton startBtn, stopBtn; private JComboBox textCmbo, backCmbo; private JLabel textLbl, backLbl; private JPanel controlPnl; private final Color colors[] = { Color.orange, Color.pink, Color.cyan, Color.magenta, Color.yellow, Color.black, Color.white, Color.gray, Color.lightGray, Color.darkGray, Color.red, Color.green, Color.blue }; private final String colorNames[] = { "Orange", "Pink", "Cyan", "Magenta", "Yellow", "Black", "White", "Gray", "Light Gray", "Dark Gray", "Red", "Green", "Blue" }; public void init() { String foreColor, backColor, tickerString; int foreColorNum, backColorNum; tickerString = getParameter("tickerString"); if (tickerString == null) { tickerString = "This is a ticker tape."; } foreColor = getParameter("foreColor"); if (foreColor != null) { try { foreColorNum = Integer.parseInt(foreColor); } catch (final NumberFormatException nfe) { foreColorNum = 4; } } else { foreColorNum = 4; } backColor = getParameter("backColor"); if (backColor != null) { try { backColorNum = Integer.parseInt(backColor); } catch (final NumberFormatException nfe) { backColorNum = 5; } } else { backColorNum = 5; } ticker = new Ticker(tickerString, colors[foreColorNum], colors[backColorNum]); startBtn = new JButton("Start"); startBtn.setMnemonic('S'); startBtn.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent ae) { ticker.start(); } }); stopBtn = new JButton("Stop"); stopBtn.setMnemonic('p'); stopBtn.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent ae) { ticker.stop(); } }); textCmbo = new JComboBox(); textCmbo.setBackground(Color.white); backCmbo = new JComboBox(); backCmbo.setBackground(Color.white); final int numberOfItems = colorNames.length; for (int i = 0; i < numberOfItems; ++i) { textCmbo.addItem(colorNames[i]); backCmbo.addItem(colorNames[i]); } textCmbo.setSelectedIndex(foreColorNum); textCmbo.addItemListener(new ItemListener() { public void itemStateChanged(final ItemEvent ie) { ticker.setTextColor(colors[textCmbo.getSelectedIndex()]); ticker.repaint(); } }); backCmbo.setSelectedIndex(backColorNum); backCmbo.addItemListener(new ItemListener() { public void itemStateChanged(final ItemEvent ie) { ticker.setBackgroundColor( colors[backCmbo.getSelectedIndex()]); ticker.repaint(); } }); textLbl = new JLabel("Text Color:", JLabel.RIGHT); textLbl.setDisplayedMnemonic('T'); textLbl.setLabelFor(textCmbo); backLbl = new JLabel("Background Color:", JLabel.RIGHT); backLbl.setDisplayedMnemonic('B'); backLbl.setLabelFor(backCmbo); controlPnl = new JPanel(); controlPnl.setLayout(new FlowLayout()); controlPnl.add(startBtn); controlPnl.add(stopBtn); controlPnl.add(textLbl); controlPnl.add(textCmbo); controlPnl.add(backLbl); controlPnl.add(backCmbo); final Container contentPane = getContentPane(); contentPane.setLayout(new BorderLayout()); contentPane.add("Center", ticker); contentPane.add("South", controlPnl); setVisible(true); stopBtn.requestFocusInWindow(); } public void start() { ticker.start(); } public void stop() { ticker.stop(); } }