A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 明光照 中级黑马   /  2012-9-20 20:34  /  2474 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这是我写的一个画圈的程序。但不知道为什么。只能在右边画。

import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.MouseMotionListener;
public class HuaTu extends JFrame implements ActionListener,MouseMotionListener,MouseListener{
    JButton jb1,jb2,jb3;
    int x = 0,y = 0,m = 0,n =0;
    // JPanel jpSouth,jpCenter;
    String shape = "";
    public HuaTu(){
        ImageIcon Save=new ImageIcon("New.gif");
        // JButton button=new JBuTTon(zap);
        
        jb1=new JButton("正方形");
        jb1.setIcon(new ImageIcon("D://hand.jpg"));
        jb2=new JButton("圆");
        jb2.setIcon(new ImageIcon("D://hand.jpg"));
        jb3=new JButton("画笔");
        jb3.setIcon(new ImageIcon("D://hand.jpg"));
        this.setBounds(0,0,800,600);
        setResizable(false);
        setLayout(null);
        jb1.setBounds(100,500,160,60);
        jb1.setSize(100,30);
        add(jb1);
        jb2.setBounds(300,500,160,60);
        jb2.setSize(100,30);
        add(jb2);
        jb3.setBounds(500,500,160,60);
        jb3.setSize(100,30);
        add(jb3);
        addMouseMotionListener(this);
        addMouseListener(this);
        jb1.addActionListener(this);
        jb2.addActionListener(this);
        jb3.addActionListener(this);
        addMouseMotionListener(this);
        addMouseListener(this);
        addMouseMotionListener(this);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
}
    /*public void update(Graphics g){
        paint(g);
    }*/
    public void paint(Graphics g) {
        if(shape.equals("正方形"))
            g.drawRect(x,y,m-x,n-y);
        if(shape.equals("圆"))
            g.drawOval(x,y,m-x,n-y);
        if(shape.equals("画笔"))
            g.drawLine(x,y,x,y);
    }
   
    public static void main(String args[]){
        new HuaTu();}
    public void actionPerformed(ActionEvent e) {
        // if(e.getSource() == jb1){}
        shape = e.getActionCommand();
         /*if(e.getSource() == jb2){
            shape = e.getActionCommand();}
        else if(e.getSource() == jb3){
            shape = e.getActionCommand();}*/
        //repaint();
    }
   
    public void mouseDragged(MouseEvent e) {
        if(shape.equals("画笔")){
            x=(int)e.getX();
            y=(int)e.getY();
            repaint();
        }
    }
   
    public void mousePressed(MouseEvent e) {
        x=m;
        y=n;
        x=e.getX();
        y=e.getY();
    }
    public void mouseReleased(MouseEvent e)  //获取所绘图形的终点
    {   m=e.getX();
        x=n=e.getY();
        repaint();
    }
    public void mouseClicked(MouseEvent e){ }
    public void mouseEntered(MouseEvent e){ }
    public void mouseExited(MouseEvent e){ }
    public void mouseMoved(MouseEvent e) {}
}

R6G}B{7QLBF2QUXGP7DWL25.jpg (60.28 KB, 下载次数: 33)

R6G}B{7QLBF2QUXGP7DWL25.jpg

2 个回复

倒序浏览
同学劝你不要在这个问题上多花时间   因为关于界面  后面讲到的html/css/js会比swing有很多优势  还有 界面的知识 要能看懂就可以了  因为那主要是美工做的   java程序员的主要任务是业务逻辑和控制逻辑这两块
回复 使用道具 举报
是啊  没必要纠结了   哥们 强力起来 做逻辑吧。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马