private JCheckBox c1; private JButton a,b; private int f=1; private int sx, sy, x,y; private boolean fill=false; private boolean flag=false; private Color c;
private Point point1=null,point2=null; private JSlider slider; private JLabel label1; private int size=10;
public DrawPanel() {
c =Color.black;
right = new JPanel(); left = new JPanel(); p1 = new JPanel();
ButtonGroup g = new ButtonGroup(); op1 = new JRadioButton(\曲线\ op2 = new JRadioButton(\直线\ op3 = new JRadioButton(\画圆\ op4 = new JRadioButton(\矩形\ op5 = new JRadioButton(\粗线\
g.add(op1); g.add(op2); g.add(op3);
g.add(op4); g.add(op5);
c1 = new JCheckBox(\填充\
a=new JButton(\颜色\ b=new JButton(\清除\
slider =new JSlider(JSlider.VERTICAL,0,25,10); slider.setMajorTickSpacing(5); slider.setMinorTickSpacing(1); slider.setPaintTicks(true); slider.setPaintLabels(true);
slider.setAlignmentX(Component.LEFT_ALIGNMENT);
label1 =new JLabel(\
label1.setAlignmentX(Component.LEFT_ALIGNMENT);
p1.setLayout(new BoxLayout(p1,BoxLayout.Y_AXIS));
p1.add(op1); p1.add(op2); p1.add(op3); p1.add(op4); p1.add(op5);
p1.add(c1);
c1.addActionListener(new listen3()); p1.add(a);
p1.add(Box.createRigidArea(new Dimension(0,10))); p1.add(b);
a.addActionListener(new listen4()); b.addActionListener(new listen5());
p1.add(slider);
slider.addChangeListener(new listen6()); p1.add(label1);
left.add(p1);
right.setBackground(Color.white);
op1.addActionListener(new listen2()); op2.addActionListener(new listen2()); op3.addActionListener(new listen2()); op4.addActionListener(new listen2()); op5.addActionListener(new listen2());
right.addMouseListener(new listen1()); right.addMouseMotionListener(new listen1());
setLayout(new BorderLayout()); add(right,\ add(left,\
setBackground(Color.white);
setPreferredSize(new Dimension(500,450)); }
private class listen1 implements MouseListener,MouseMotionListener {
public void mousePressed(MouseEvent event) {
flag=false;
point1=event.getPoint(); sx=point1.x; sy=point1.y ; }
public void mouseReleased(MouseEvent event) {
int x0,y0;
Graphics g=right.getGraphics();
switch(f){ case 2:
point2=event.getPoint(); x=point2.x; y=point2.y ; g.setColor(c); g.drawLine(sx,sy,x,y); break; case 3:
point2=event.getPoint();
x=point2.x; y=point2.y ; x0=x>sx?sx:x; y0=y>sy?sy:y; g.setColor(c); if(! fill)
g.drawOval(x0,y0,Math.abs(x-sx),Math.abs(y-sy)); else
g.fillOval(x0,y0,Math.abs(x-sx),Math.abs(y-sy)); break; case 4:
point2=event.getPoint(); x=point2.x; y=point2.y ; x0=x>sx?sx:x; y0=y>sy?sy:y; g.setColor(c); if(! fill)
g.drawRect(x0,y0,Math.abs(x-sx),Math.abs(y-sy)); else
g.fillRect(x0,y0,Math.abs(x-sx),Math.abs(y-sy)); break; } }
public void mouseEntered(MouseEvent event){} public void mouseExited(MouseEvent event){} public void mouseClicked(MouseEvent event){} public void mouseMoved(MouseEvent event){}