// Processed by NMI's Java Code Viewer 4.8.2 © 1997-2000 B. Lemaire // Website: http://njcv.htmlplanet.com E-mail: info@njcv.htmlplanet.com // Copy registered to Evaluation Copy // Source File Name: Spinner.java import java.awt.*; import java.io.File; class Spinner extends Panel { Image arrowUp; Image arrowDown; ImageButton up; ImageButton down; Toolkit toolkit; MediaTracker tracker; TextField text; Font font; String list[]; int listIndex; int WORDS; int MIN_VALUE; int MAX_VALUE; boolean numericSpinner; boolean listSpinner; Dimension d; Component target; public Spinner(int i, int j, char c, Component component) { toolkit = getToolkit(); text = new TextField(); font = new Font("Dialog", 1, 12); WORDS = 26; MAX_VALUE = 3600; numericSpinner = false; listSpinner = false; target = component; if(c == 'n') { numericSpinner = true; listSpinner = false; text.setText("0"); } if(c == 'l') { numericSpinner = false; listSpinner = true; setEditable(false); } setBackground(new Color(0xc0c0c0)); setLayout(null); resize(i, j); d = size(); loadImages(); createImageButtons(); text.setFont(font); text.reshape(0, 0, d.width - 16, 20); add(text); } public void loadImages() { tracker = new MediaTracker(this); arrowUp = toolkit.getImage("images" + File.separator + "arrowup.jpg"); arrowDown = toolkit.getImage("images" + File.separator + "arrowdown.jpg"); tracker.addImage(arrowUp, 0); tracker.addImage(arrowDown, 0); try { tracker.waitForAll(); } catch(InterruptedException _ex) { } toolkit = null; } public void createImageButtons() { up = new ImageButton(arrowUp, arrowUp, d.width - 14, 2, new Color(0xc0c0c0), this); down = new ImageButton(arrowDown, arrowDown, d.width - 14, 11, new Color(0xc0c0c0), this); add(up); add(down); arrowUp = null; arrowDown = null; } protected String getCurrentText() { return text.getText(); } protected int getCurrent() { return Integer.valueOf(text.getText()).intValue(); } protected void setCurrent(int i) { text.setText(String.valueOf(i)); } protected void setText(String s) { text.setText(s); } protected void setEditable(boolean flag) { if(flag) { text.enable(); return; } else { text.disable(); return; } } public void setListItems(String as[]) { list = as; text.setText(list[0]); } protected void setMax(int i) { MAX_VALUE = i; } protected void setMin(int i) { MIN_VALUE = i; } public boolean handleEvent(Event event) { if(event.target == up && event.id == 1001) { if(numericSpinner && getCurrent() < MAX_VALUE) { text.setText(String.valueOf(getCurrent() + 1)); target.handleEvent(new Event(this, 1001, null)); } if(listSpinner && listIndex < WORDS - 1) { listIndex++; text.setText(list[listIndex]); target.handleEvent(new Event(this, 1001, null)); } return true; } if(event.target == down && event.id == 1001) { if(numericSpinner && getCurrent() > MIN_VALUE) { text.setText(String.valueOf(getCurrent() - 1)); target.handleEvent(new Event(this, 1001, null)); } if(listSpinner && listIndex > 0) { listIndex--; text.setText(list[listIndex]); target.handleEvent(new Event(this, 1001, null)); } return true; } else { return false; } } }