import java.awt.*; import javax.swing.*; import java.awt.event.*; //for events import javax.swing.event.*; public class FiveDigit extends JFrame implements ActionListener { int value=0; JPanel jpCenter = new JPanel(); JPanel jpTop = new JPanel(); JPanel jpBottom = new JPanel(new FlowLayout()); JButton jbAdd = new JButton("+"); JButton jbSubtract = new JButton("-"); JButton jbAutoInc = new JButton("Auto"); ImageIcon[] img = new ImageIcon[10];//declare image array JLabel[] jlDigitDisplay = new JLabel[10]; //declare jlabel array JPanel[] jpDigitDisplay = new JPanel[10]; JamesPanel jpSDDOne = new JamesPanel(); JamesPanel jpSDDTwo = new JamesPanel(); JamesPanel jpSDDThree = new JamesPanel(); JamesPanel jpSDDFour = new JamesPanel(); JamesPanel jpSDDFive = new JamesPanel(); JLabel jlValue = new JLabel ("Input value 0 - 99999"); JTextField valueInput = new JTextField(5); javax.swing.Timer t; boolean ticking; String strNum; public FiveDigit() { for (int i=0; i<10; i++) { img[i] = new ImageIcon("sddigit"+i+".png"); } for (int i=0; i<10; i++) { jlDigitDisplay[i] = new JLabel (img[0]); } for (int i=0; i<10; i++) { jlDigitDisplay[i].setIcon(img[value]); } jpCenter.add(jpSDDOne); jpCenter.add(jpSDDTwo); jpCenter.add(jpSDDThree); jpCenter.add(jpSDDFour); jpCenter.add(jpSDDFive); jpSDDOne.add(jlDigitDisplay[0]); jpSDDTwo.add(jlDigitDisplay[1]); jpSDDThree.add(jlDigitDisplay[2]); jpSDDFour.add(jlDigitDisplay[3]); jpSDDFive.add(jlDigitDisplay[4]); getContentPane().add(jpCenter, BorderLayout.CENTER); jpTop.add(jlValue); jpTop.add(valueInput); valueInput.addActionListener(this); getContentPane().add(jpTop, BorderLayout.NORTH); jpBottom.add(jbAdd); jbAdd.addActionListener(this); jpBottom.add(jbSubtract); jbSubtract.addActionListener(this); jpBottom.add(jbAutoInc); jbAutoInc.addActionListener(this); getContentPane().add(jpBottom, BorderLayout.SOUTH); pack(); jbAutoInc.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(ticking) { t.stop(); ticking = false; System.out.println("Delete drive :/c?"); } else{ t.restart(); ticking = true; System.out.println("Positive"); } } } ); t = new javax.swing.Timer(-20, new ActionListener() { public void actionPerformed(ActionEvent e) { value++; displayMethod(); //ae(); } } ); } class JamesPanel extends JPanel { public JamesPanel() { this.setPreferredSize(new Dimension(100,150)); } public void paintComponent(Graphics g) { super.paintComponent(g); } } public void actionPerformed(ActionEvent ae) { if (ae.getSource() == jbAdd) { value=value+1; displayMethod(); } else if (ae.getSource() == jbSubtract) { if(value==0) { value=0; } else { value=value-1; displayMethod(); } } else if (ae.getSource() == valueInput) { String strNum = valueInput.getText(); value = Integer.parseInt(valueInput.getText()); displayMethod(); } } public void displayMethod() { strNum = "" + value; valueInput.setText(strNum); int value2 = strNum.length(); if(value2==1) { String strDigit4 = strNum.substring(0,1); int intDigit4 = Integer.parseInt(strDigit4); jlDigitDisplay[4].setIcon(img[intDigit4]); int intDigit3 =0; jlDigitDisplay[3].setIcon(img[intDigit3]); int intDigit2 =0; jlDigitDisplay[2].setIcon(img[intDigit2]); int intDigit1 =0; jlDigitDisplay[1].setIcon(img[intDigit1]); int intDigit0 =0; jlDigitDisplay[0].setIcon(img[intDigit0]); } if(value2==2) { String strDigit4 = strNum.substring(1,2); int intDigit4 = Integer.parseInt(strDigit4); jlDigitDisplay[4].setIcon(img[intDigit4]); String strDigit3 = strNum.substring(0,1); int intDigit3 = Integer.parseInt(strDigit3); jlDigitDisplay[3].setIcon(img[intDigit3]); int intDigit2 =0; jlDigitDisplay[2].setIcon(img[intDigit2]); int intDigit1 =0; jlDigitDisplay[1].setIcon(img[intDigit1]); int intDigit0 =0; jlDigitDisplay[0].setIcon(img[intDigit0]); } if(value2==3) { String strDigit4 = strNum.substring(2,3); int intDigit4 = Integer.parseInt(strDigit4); jlDigitDisplay[4].setIcon(img[intDigit4]); String strDigit3 = strNum.substring(1,2); int intDigit3 = Integer.parseInt(strDigit3); jlDigitDisplay[3].setIcon(img[intDigit3]); String strDigit2 = strNum.substring(0,1); int intDigit2 = Integer.parseInt(strDigit2); jlDigitDisplay[2].setIcon(img[intDigit2]); int intDigit1 =0; jlDigitDisplay[1].setIcon(img[intDigit1]); int intDigit0 =0; jlDigitDisplay[0].setIcon(img[intDigit0]); } if(value2==4) { String strDigit4 = strNum.substring(3,4); int intDigit4 = Integer.parseInt(strDigit4); jlDigitDisplay[4].setIcon(img[intDigit4]); String strDigit3 = strNum.substring(2,3); int intDigit3 = Integer.parseInt(strDigit3); jlDigitDisplay[3].setIcon(img[intDigit3]); String strDigit2 = strNum.substring(1,2); int intDigit2 = Integer.parseInt(strDigit2); jlDigitDisplay[2].setIcon(img[intDigit2]); String strDigit1 = strNum.substring(0,1); int intDigit1 = Integer.parseInt(strDigit1); jlDigitDisplay[1].setIcon(img[intDigit1]); int intDigit5 =0; jlDigitDisplay[0].setIcon(img[intDigit5]); } if(value2==5) { String strDigit4 = strNum.substring(4,5); int intDigit4 = Integer.parseInt(strDigit4); jlDigitDisplay[4].setIcon(img[intDigit4]); String strDigit3 = strNum.substring(3,4); int intDigit3 = Integer.parseInt(strDigit3); jlDigitDisplay[3].setIcon(img[intDigit3]); String strDigit2 = strNum.substring(2,3); int intDigit2 = Integer.parseInt(strDigit2); jlDigitDisplay[2].setIcon(img[intDigit2]); String strDigit1 = strNum.substring(1,2); int intDigit1 = Integer.parseInt(strDigit1); jlDigitDisplay[1].setIcon(img[intDigit1]); String strDigit0 = strNum.substring(0,1); int intDigit0 = Integer.parseInt(strDigit0); jlDigitDisplay[0].setIcon(img[intDigit0]); } if(value>99999 || value<0) { value=0; } } public static void main(String[] args) { FiveDigit fdd = new FiveDigit(); fdd.setTitle("Five Digit Display"); fdd.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fdd.setLocation(20,20); fdd.setSize(550, 250); fdd.setVisible(true); }//end main }