CheckboxMenuItem roundItem, squareItem, lineItem; MenuItem exitItem;. Button resetButton, exitButton; Label sizeLabel;[r]
Trang 1Có hai lớp:
1) Painting
2) MyCanvas
import java.awt.*;
import java.awt.event.*;
class Painting extends Frame implements ActionListener {
Choice shapeChoice;
List colorList;
CheckboxGroup colorGroup;
Checkbox redCheckbox, greenCheckbox, blueCheckbox; Scrollbar sizeScrollbar;
MyCanvas paintCanvas;
MenuBar menubar;
Menu menu;
CheckboxMenuItem roundItem, squareItem, lineItem; MenuItem exitItem;
Button resetButton, exitButton;
Label sizeLabel;
Painting() {
setTitle("My Painting");
setLayout(null);
menubar = new MenuBar();
menu = new Menu("Shapes");
roundItem = new CheckboxMenuItem("Round"); squareItem = new CheckboxMenuItem("Square"); lineItem = new CheckboxMenuItem("Line");
exitItem = new MenuItem("Exit");
//lineItem.disable();
//roundItem.addActionListener(this);
menu.add(roundItem);
menu.add(squareItem);
menu.add(lineItem);
menu.addSeparator();
menu.add(exitItem);
menubar.add(menu);
Trang 2shapeChoice = new Choice();
shapeChoice.setBounds(30,80,100,50);
shapeChoice.addItem("Round");
shapeChoice.addItem("Square");
shapeChoice.addItem("Line");
shapeChoice.setBackground(Color.GREEN);
add(shapeChoice);
colorList = new List();
colorList.setBounds(30,310,100,50);
colorList.add("Red");
colorList.add("Green");
colorList.add("Blue");
colorList.setBackground(Color.cyan);
add(colorList);
colorGroup = new CheckboxGroup();
redCheckbox = new Checkbox("Red",colorGroup,true);
greenCheckbox = new Checkbox("Green",colorGroup,false); blueCheckbox = new Checkbox("Blue",colorGroup,false); redCheckbox.setBounds(70,140,50,50);
greenCheckbox.setBounds(70,190,50,50);
blueCheckbox.setBounds(70,240,50,50);
add(redCheckbox);
add(greenCheckbox);
add(blueCheckbox);
sizeLabel = new Label("Size:");
sizeLabel.setBounds(30,110,50,30);
add(sizeLabel);
sizeScrollbar = new Scrollbar(Scrollbar.VERTICAL,60,10,20,110); sizeScrollbar.setBounds(30,140,20,150);
add(sizeScrollbar);
paintCanvas = new MyCanvas();
paintCanvas.setBounds(150,80,420,300);
add(paintCanvas);
resetButton = new Button("Reset");
Trang 3resetButton.setBounds(450,390,50,40);
exitButton = new Button("Exit");
exitButton.setBackground(Color.YELLOW);
exitButton.setBounds(520,390,50,40);
add(resetButton);
add(exitButton);
//default values:
roundItem.setState(true);
shapeChoice.select(0);
colorList.select(0);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt){System.exit(0);} });
}
public void actionPerformed(ActionEvent evt)
{
if(evt.getSource()==exitItem)
System.exit(0);
if(evt.getSource()==exitButton)
System.exit(0);
if(evt.getSource()==resetButton) {
roundItem.setState(true);
squareItem.setState(false);
lineItem.setState(false);
shapeChoice.select(0);
colorList.select(0);
redCheckbox.setState(true);
sizeScrollbar.setValue(60);
} }
public static void main (String[] args)
{
Painting p = new Painting();
p.setBounds(50,50,600,450);
p.setResizable(false);
p.setVisible(true);
}
}
Trang 4import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
class MyCanvas extends Canvas implements MouseListener {
int x,y;
MyCanvas()
{
super();
setBackground(Color.GRAY);
this.addMouseListener(this);
}
@Override
public void paint(Graphics g) {
g.setColor(Color.RED);
g.fillRect(x,y,100,50);
}
@Override
public void mouseClicked(MouseEvent e) {
x = e.getX();
y = e.getY();
repaint();
System.out.println("x="+x);
}
@Override
public void mousePressed(MouseEvent e) {;}
@Override
public void mouseReleased(MouseEvent e){;}
@Override
public void mouseEntered(MouseEvent e){;}
@Override
public void mouseExited(MouseEvent e){;}
}