CompSci 415.1 Event Handling. CompSci 415.2 Event Handling The Plan Sequential (Single Thread)...

15
CompSci 4 15.1 Event Handling Event Handling

Transcript of CompSci 415.1 Event Handling. CompSci 415.2 Event Handling The Plan Sequential (Single Thread)...

Page 1: CompSci 415.1 Event Handling. CompSci 415.2 Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.

CompSci 4 15.1Event Handling

Event Handling

Page 2: CompSci 415.1 Event Handling. CompSci 415.2 Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.

CompSci 4 15.2Event Handling

The Plan

Sequential (Single Thread) Model Event Model Making the GUI interactive Examples Practice

Page 3: CompSci 415.1 Event Handling. CompSci 415.2 Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.

CompSci 4 15.3Event Handling

Sequential (Single Thread) Model

ProgramStart

ProgramEnd

Page 4: CompSci 415.1 Event Handling. CompSci 415.2 Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.

CompSci 4 15.4Event Handling

Event Model

AWTEventLoop

ProgramThread

Page 5: CompSci 415.1 Event Handling. CompSci 415.2 Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.

CompSci 4 15.5Event Handling

Event Model

ProgramThread

Page 6: CompSci 415.1 Event Handling. CompSci 415.2 Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.

CompSci 4 15.6Event Handling

Event Model

AWTEventLoop

Page 7: CompSci 415.1 Event Handling. CompSci 415.2 Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.

CompSci 4 15.7Event Handling

Making the GUI Interactive

1) import java.awt.event.*2) implements ActionListener

3) write methodpublic void actionPerformed(ActionEvent e)

4) call addActionListener(this) for all JButtons

Page 8: CompSci 415.1 Event Handling. CompSci 415.2 Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.

CompSci 4 15.8Event Handling

Examples

AdderGUI.java GameShell.java

Page 9: CompSci 415.1 Event Handling. CompSci 415.2 Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.

CompSci 4 15.9Event Handling

Examples

AdderGUI.java

import java.awt.*;import java.awt.event.*;import javax.swing.*;

public class AdderGUI extends JApplet implements ActionListener

Page 10: CompSci 415.1 Event Handling. CompSci 415.2 Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.

CompSci 4 15.10Event Handling

Examples AdderGUI.java

public void actionPerformed(ActionEvent ae){

String addend0Text=addend0.getText();double addend0Number=Double.parseDouble(addend0Text);String addend1Text=addend1.getText();double addend1Number=Double.parseDouble(addend1Text);double answer=addend0Number+addend1Number;sum.setText(""+answer);

}

Page 11: CompSci 415.1 Event Handling. CompSci 415.2 Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.

CompSci 4 15.11Event Handling

Examples AdderGUI.java

private void makeComponents(){

frame=new JFrame("Game Shell");addend0=new JTextField(8);addend1=new JTextField(8);sum=new JTextField(8);compute=new JButton("=");compute.addActionListener(this);plus=new JLabel("+");plus.setHorizontalAlignment(SwingConstants.CENTER);

}

Page 12: CompSci 415.1 Event Handling. CompSci 415.2 Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.

CompSci 4 15.12Event Handling

Examples

GameShell.java

import java.awt.*;import java.awt.event.*;import javax.swing.*;

public class GameShell extends JApplet implements ActionListener

Page 13: CompSci 415.1 Event Handling. CompSci 415.2 Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.

CompSci 4 15.13Event Handling

Examples

GameShell.java

public void actionPerformed(ActionEvent ae) { Object cause=ae.getSource(); if(cause==pause) { if(pause.getText().equals("Pause")) { pause.setText("Resume"); shell.setText("Paused"); } else { pause.setText("Pause"); shell.setText("Game Running"); } } if(cause==reset) { pause.setText("Start"); shell.setText("Splash"); } }

Page 14: CompSci 415.1 Event Handling. CompSci 415.2 Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.

CompSci 4 15.14Event Handling

Examples

GameShell.java

pause=new JButton("Start"); pause.addActionListener(this);

reset=new JButton("Start New Game"); reset.addActionListener(this);

Page 15: CompSci 415.1 Event Handling. CompSci 415.2 Event Handling The Plan  Sequential (Single Thread) Model  Event Model  Making the GUI interactive  Examples.

CompSci 4 15.15Event Handling

Practice

Make a 2x2 tic-tac-toe board out of initially blank Jbuttons.

Make the JButton text change to X when the user clicks on it.

Make the JButton text change to X and O alternatively as the user clicks on the buttons.Hint: use a boolean instance variable.

Make the fonts larger, and maybe add images.

Look at Splash.java and SplashLoop.java in Splash.jar