// 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: ScrabbleBoard.java import java.awt.*; import java.io.File; class ScrabbleBoard extends Panel { Toolkit toolkit; MediaTracker tracker; ImageButton done; ImageButton pass; ImageButton undo; Image boardButtons[]; Board board; Frame target; public ScrabbleBoard(Frame frame) { toolkit = getToolkit(); boardButtons = new Image[3]; target = frame; resize(580, 590); setBackground(Color.black); loadImages(); createImageButtons(); setLayout(null); board = new Board(target); board.move(0, 0); add(board); } public void loadImages() { tracker = new MediaTracker(this); for(int i = 0; i < 3; i++) { boardButtons[i] = toolkit.getImage("images" + File.separator + "button" + i + ".jpg"); tracker.addImage(boardButtons[i], 0); } try { tracker.waitForAll(); } catch(InterruptedException _ex) { } toolkit = null; } public void createImageButtons() { done = new ImageButton(boardButtons[0], boardButtons[0], 14, 543, new Color(164, 207, 249), this); pass = new ImageButton(boardButtons[1], boardButtons[1], 97, 543, new Color(164, 207, 249), this); undo = new ImageButton(boardButtons[2], boardButtons[2], 180, 543, new Color(164, 207, 249), this); add(done); add(pass); add(undo); for(int i = 0; i < 3; i++) boardButtons[i] = null; } public void newBankLetters() { board.newBankLetters(); } public void clearBankLetters() { board.clearBankLetters(); } public void updateBoard() { board.updateTilesOnBoard(); } public void clearBoard() { board.clearBoard(); } public void handleUndoButton() { if(!ClientData.waitingForAnswer) board.handleUndoButton(); } public void handlePassButton() { if(!ClientData.waitingForAnswer) { board.handleUndoButton(); target.handleEvent(new Event(this, 1001, Integer.toString(162))); } } public void handleDoneButton() { if(!ClientData.waitingForAnswer) { for(int i = 0; i < 7; i++) if(ClientData.bankLetters[i] == 0) { target.handleEvent(new Event(this, 1001, Integer.toString(164))); return; } } } public synchronized void resize(int i, int j) { super.resize(580, 590); } public synchronized void reshape(int i, int j, int k, int l) { super.reshape(i, j, 580, 590); } public synchronized void repaint() { board.repaint(); } public boolean handleEvent(Event event) { if(event.id == 1001 && ClientData.myTurn) { if(event.target == done) { handleDoneButton(); return true; } if(event.target == pass) { handlePassButton(); return true; } if(event.target == undo) { board.handleUndoButton(); return true; } } return false; } }