Programming for Interactivity
Document Sample


Programming for Interactivity
Professor Bill Tomlinson
Tuesday & Wednesday
6:00-7:50pm
Fall 2005
Standard Inputs
• What makes an input “standard”?
Keyboard
• Connect keys to different behavior
• (Correction: KeyAdapter, etc., is in
java.awt.event)
Mouse
• Clicks, drags, etc.
gridCanvas.addMouseListener(
new TesterMouseMotionListener());
class TesterMouseMotionListener implements MouseListener, MouseMotionListener {
public void mousePressed(MouseEvent e) {
int xPos = e.getX();
int yPos = e.getY();
System.out.println("Clicked at "+xPos+", "+yPos);
if ((xPos < Tester.xSize) && (yPos < Tester.ySize) && xPos >= 0 && yPos >= 0){
((Device)(Tester.getAllDevices().elementAt(0))).setPosition(new Vec2(xPos,
yPos));
}
Tester.getGridCanvas().repaint();
}
public void mouseDragged(MouseEvent e) {}
public void mouseMoved(MouseEvent e) {}
public void mouseReleased(MouseEvent e){}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
}
Equivalent to: gridCanvas.addMouseListener(new
TesterMouseAdapter());
class TesterMouseAdapter extends MouseAdapter {
public void mousePressed(MouseEvent e) {
int xPos = e.getX();
int yPos = e.getY();
System.out.println("Clicked at "+xPos+", "+yPos);
if ((xPos < Tester.xSize) && (yPos < Tester.ySize) && xPos >= 0 &&yPos >= 0)
{
((Device)(Tester.getAllDevices().elementAt(0))).setPosition(
new Vec2(xPos, yPos));
}
Tester.getGridCanvas().repaint();
}
}
Graphical User Interfaces (GUIs)
• “Standard” screen widgets
Buttons
• Clickable area of screen, graphically
represented as a raised button, often with
a text label.
Sliders
• Variable input (and output)
• Text label
• Returns an int, so need to give it a large
scale if an approximately continuous
response is wanted.
Check boxes
• Set parameters
• Often paired with one or more buttons
Radio Buttons
• Only one can be selected at a time
Text Boxes
• Enter one or more lines of text.
• Often coupled with a button.
Others?
Example: New York Times
• What GUI elements does the site include?
Other GUI Elements?
• Can we think of any other GUI widgets
that would be useful?
Less Standard
• Does not ship with typical PCs
Adapting the
Mouse and Keyboard
• Physical coupling
3D GUI
• Croquet
• Alan Kay
Game Pad
Stylus
Accelerometer
• EcoRaft
• Repurposing mouse
USB Button
Telephone tones
Voice: Non-verbal
• AlphaWolf
• Volume
• Harmonicity
• Length
Voice: Language-based
• Sphinx
Sphinx + FreeTTS
IrDA
• EcoRaft
Vision: Background subtraction
Look for differences in the pixels from frame to
frame.
Vision: Multi-camera
Tangible User Interfaces (TUIs)
• Ishii et al.
Location: GPS
• Geocaching
Location: Other
• PlaceLab - 802.11 access points, etc.
Synthetic Nose
• Natalie Jeremijenko
Integrating Input with
Graphics and Sound
Evaluating Input Technologies
• Quantitative study - e.g., how fast can
users accomplish some task using the
input?
• Qualitative study - which inputs do they
like and why?
• Artistic license - what feels good to you?
Readings
Dourish
• Context
• How much input needs to be consciously
delivered by a person?
• How much can provide implicit contextual
cues?
• How much context can be
extrapolated/interpolated from other
information?
Reeves & Nass
• Social interactions with computers
• Politeness
Schechner
• Indian Theater vs. Western Theater
• Engaging the body viscerally.
• How can interactive computational
systems engage the body and the
senses?
Vectorpark
• http://www.vectorpark.com/ball.html
Ze Frank’s Frog
• http://www.zefrank.com/frog/frog.html
Other sites to analyze?
Get documents about "