cacaopie 2015-05-21 14:01 采纳率: 14.3%
浏览 1712
已采纳

好多看不懂...求指点...

程序应该没什么问题,可就是编译的时候就出现问题了,问题:内些错误到底怎么看呢?其实我还有很多看不懂...但还是请前辈们先帮我解决这两个问题吧...谢谢大家了啊!
package mouse;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
import javax.swing.*;

public class MouseFrameText {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    EventQueue.invokeLater(new Runnable()
       {
           public void run()
           {
               JFrame frame=new MouseFrame();
               frame.setTitle("MouseFrame");
               frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
               frame.setVisible(true);
           }
       });
}

}
class MouseFrame extends JFrame
{
public MouseFrame()
{
add(new MouseComponent());
pack();
}
}
class MouseComponent extends JComponent
{
private static final int SIDELENGTH=10;
private ArrayListsquares;
private Rectangle2D current;
public MouseComponent()
{
squares=new ArrayList<>();
current=null;

    addMouseListener(new MouseHandler());
    addMouseMotionListener(new MouseMotionHandler());
}

public void paintComponent(Graphics g)
{
Graphics2D g2=(Graphics2D) g;

for(Rectangle2D r:squares)
    g2.draw(r);

}
public Rectangle2D find(Point2D p)
{
for(Rectangle2D r:squares)
{
if(r.contains(p))
return r;
}
return null;
}
public void add(Point2D p)
{
double x=p.getX();
double y=p.getY();

current=new Rectangle2D.Double(x-SIDELENGTH/2,y-SIDELENGTH/2,SIDELENGTH,SIDELENGTH);
squares.add(current);
repaint();

}
public void remove(Rectangle2D s)
{
if(s==null) return;
if(s==current) current=null;
squares.remove(s);
repaint();
}
private class MouseHandler extends MouseAdapter
{
public void mousePressed(MouseEvent event)
{
current=find(event.getPoint());
if(current==null) add(event.getPoint());
}
public void mouseClicked(MouseEvent event)
{
current=find(event.getPoint());
if(current!=null&&event.getClickCount()>=2)
remove(current);
}
}
private class MouseMotionHandler implements MouseMotionListener
{
public void mouseMoved(MouseEvent event)
{
if(find(event.getPoint())==null)
setCursor(Cursor.getDefaultCursor());
else
setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
}
public void mouseDragged(MouseEvent event)
{
if(current!=null)
{
int x=event.getX();
int y=event.getY();
current.setFrame(x-SIDELENGTH/2,y-SIDELENGTH/2,SIDELENGTH,SIDELENGTH);
repaint();
}
}
}
}
图片说明

  • 写回答

7条回答 默认 最新

  • 另一花生 2015-05-22 08:15
    关注

    你看,那个红色的字体就是控制台的输出,你完成的应该是关于图形界面的功能,你可以在这个类里某行开始执行的时候,双击左侧边,会出来一个点,这就是
    断点,可以帮助你查看错误,你看它说17行,意思就是程序执行到17行就不行了,这里有错误,错误是Bad type oper....就是前几行写的那个,
    你再百度这个错误,查看相关内容,最后我想说,你这个代码贴的没有高亮,我看着别扭,可能是换了markdown,所以看着不舒服,希望对你有用!!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看