MouseEvents无法在Java中运行: 当我拖动鼠标时没有任何反应。该程序应该在拖动时绘制。
继承主要课程:
public class GUI {
public static void main(String[] args) {
simpledrawing xx = new simpledrawing();
JFrame x = new JFrame();
x.add(xx,BorderLayout.SOUTH);
x.add(new JLabel("Drag to draw"),BorderLayout.NORTH);
x.setSize(450,450);
x.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
x.setVisible(true);
}
}
继承事件监听器类
public class simpledrawing extends JPanel{
private int pc =0;
private Point[] points = new Point[10000];
public simpledrawing(){
System.out.print("Entered Constructor");
addMouseMotionListener(
new MouseMotionAdapter(){
@Override
public void mouseDragged(MouseEvent e){
System.out.print("Dragging Mouse");
if(pc<points.length){
points[pc] = e.getPoint();
++pc;
repaint();
}
}
});
}
public void paintComponent( Graphics g )
{
super.paintComponent( g );
for( int i=0; i < pc; i++ )
g.fillOval(points[i].x ,points[i].y , 4, 4);
}
答案 0 :(得分:4)
public void MouseDragged(MouseEvent e){
Java区分大小写。方法名称应以小写字符开头:
public void mouseDragged(MouseEvent e){
编辑:
此外,在进行自定义绘制时,您必须覆盖面板的getPreferredSize()
方法以返回面板所需的尺寸,否则尺寸为(0,0)并且没有任何颜色可供绘制。
阅读Custom Painting上Swing教程中的部分,了解更多信息和工作示例。
最后,类名以大写字母开头。遵循Java标准,不要制定自己的约定。
答案 1 :(得分:0)
小组必须具有针对性:
在旁注中,您应该用大写字母命名您的班级。并且不要将对象命名为x或xx,这使得阅读更加困惑。