import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; /** * * @author jlsager */ public class FizzerBuzzer extends javax.swing.JFrame implements ActionListener, ChangeListener { private JRadioButton[] rbBuzzer = new JRadioButton[10]; private JRadioButton[] rbFizzer = new JRadioButton[10]; private int fizzVal = 3; private int buzzVal = 5; /** Creates new form NewJFrame */ public FizzerBuzzer() { initComponents(); spinValue.setValue(3); initBuzzerButtons(); initFizzerButtons(); this.setSize(560,370); this.setTitle("Flexible Fizzer-Buzzer"); btnGo.addActionListener(this); spinValue.addChangeListener(this); rbFizzer[fizzVal].setSelected(true); rbBuzzer[buzzVal].setSelected(true); fizzBuzz(3); } private void initBuzzerButtons() { ButtonGroup buzzerGroup = new javax.swing.ButtonGroup(); int X = 130; int Y = 145; int xIncr = 45; for (int i=3; i<10; i++) { rbBuzzer[i] = new JRadioButton(); rbBuzzer[i].setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); rbBuzzer[i].setMargin(new java.awt.Insets(0, 0, 0, 0)); getContentPane().add(rbBuzzer[i], new org.netbeans.lib.awtextra.AbsoluteConstraints(X, Y, -1, -1)); X += xIncr; buzzerGroup.add(rbBuzzer[i]); rbBuzzer[i].addActionListener(this); } } private void initFizzerButtons() { ButtonGroup fizzerGroup = new javax.swing.ButtonGroup(); int X = 130; int Y = 120; int xIncr = 45; for (int i=3; i<10; i++) { rbFizzer[i] = new JRadioButton(); } for (int i=3; i<10; i++) { rbFizzer[i] = new JRadioButton(); rbFizzer[i].setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); rbFizzer[i].setMargin(new java.awt.Insets(0, 0, 0, 0)); getContentPane().add(rbFizzer[i], new org.netbeans.lib.awtextra.AbsoluteConstraints(X, Y, -1, -1)); X += xIncr; fizzerGroup.add(rbFizzer[i]); rbFizzer[i].addActionListener(this); } } public void actionPerformed(ActionEvent e) { Object src = e.getSource(); if (src == btnGo) { int val = ((Integer)spinValue.getValue()).intValue(); fizzBuzz(val); } for (int i=3; i<10; i++) { if (src == rbFizzer[i]) { fizzVal = i; fizzBuzz(((Integer)spinValue.getValue()).intValue()); return; } if (src == rbBuzzer[i]) { buzzVal = i; fizzBuzz(((Integer)spinValue.getValue()).intValue()); return; } } } public void stateChanged(ChangeEvent e) { Object src = e.getSource(); if (src == spinValue) { int val = ((Integer)spinValue.getValue()).intValue(); fizzBuzz(val); } } private void fizzBuzz(int val) { //Implement your Fizz Buzz Algorithm Here... String out = ""; String str = new Integer(val).toString(); if (( val % fizzVal) == 0) out += txtFizz.getText(); if (( val % buzzVal) == 0) out += txtBuzz.getText(); if ( val == buzzVal) out += txtBuzz.getText(); if ( val == fizzVal) out += txtFizz.getText(); if (out.equals("")) out = str; txtOut.setText(out); } private int getFizzer() { for (int i=3; i<10; i++) { if (rbFizzer[i].isSelected()) return i; } return -1; } private int getBuzzer() { for (int i=3; i<10; i++) { if (rbBuzzer[i].isSelected()) return i; } return -1; } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new FizzerBuzzer().setVisible(true); } }); }