Java Reference
In-Depth Information
green . addActionListener(
new
ColorListener(Color .GREEN)) ;
red . addActionListener(
new
ColorListener(Color .RED)) ;
blue . addActionListener(
new
ColorListener(Color .BLUE)) ;
class
ColorListener
implements
ActionListener
{
private
Color color ;
public
ColorListener ()
{
color = Color.RED;
}
public
ColorListener(Color color)
{
this
. color = color ;
}
public void
actionPerformed(ActionEvent e)
{
p. changeColor( color ) ;
}
}
}
class
MyPanel
extends
JPanel
{
ArrayList
<
MyShape
>
shapes =
new
ArrayList
<
MyShape
>
() ;
private
Color currentColor ;
public void
changeColor(Color newColor)
{
currentColor = newColor;
}
public
MyPanel ()
{
addMouseListener(
new
MouseAdapter ()
{
public void
mousePressed (MouseEvent e )
{
if
(e . getButton() == 1)
{
shapes .add(
new
MyShape( e . getPoint ( ) , currentCo lor ) ) ;
repaint () ;
if
(e . getButton() == 3)
{
shapes =
new
ArrayList
<
MyShape
>
() ;
repaint () ;
}
}
}
);
addMouseMotionListener(
new
MouseMotionAdapter ()
{
public void
mouseDragged(MouseEvent e)
{
System.out . println(e. getModifiersEx()) ;
if
((e. getModifiersEx() & MouseEvent.BUTTON1DOWN MASK)
! = 0 )
{
shapes . get(shapes . size ()
−
1) . addPoint(e . getPoint () ) ;
repaint () ;
}
}
}
);
}
public void
paintComponent(Graphics g)
{
super
. paintComponent(g) ;
Graphics2D g2 = (Graphics2D) g ;
for
(MyShape s
:
shapes )
{
s . drawShape(g2) ;