21xrx.com
2025-03-29 07:14:14 Saturday
文章检索 我的文章 写文章
我最近在学习Java编程
2023-06-18 11:40:59 深夜i     4     0

我最近在学习Java编程,发现用Java画图真的很有趣。于是我尝试写了一个简单的画图板,现在分享一下完整的代码。

首先,画图板需要用到Java的绘图类。我选择了JPanel类和Graphics类来绘制图形。下面是代码中声明的一些变量:

JPanel panel;
Graphics graphic;
int x, y, prevX, prevY;
Color currentColor;

panel是一个JPanel对象,我们将在它上面绘制图形。graphic是一个Graphics对象,我们将使用它来添加画笔和颜色。x和y是鼠标当前位置的坐标,prevX和prevY是上一个位置的坐标,currentColor是当前的颜色。

下面是代码中的几个关键方法:

public void paintComponent(Graphics g) {
  super.paintComponent(g);
  if (graphic == null) {
    graphic = g.create();
    graphic.setColor(Color.black);
  }
}
public void setColor(Color c) {
  currentColor = c;
  graphic.setColor(currentColor);
}
public void drawLine() {
  graphic.drawLine(x, y, prevX, prevY);
  prevX = x;
  prevY = y;
  panel.repaint();
}

paintComponent方法是绘制组件的核心方法,在这个方法中我们创建一个Graphics对象,并将它初始化为黑色。

setColor方法根据传入的颜色值,将currentColor设为指定的颜色。

drawLine方法画一条线段。当用户按下鼠标键时,prevX和prevY被设置为鼠标当前位置的坐标,然后当鼠标移动时,drawLine方法被调用,将使用graphic对象的drawLine方法绘制一条线段,并更新prevX和prevY,以便在下一次鼠标移动时继续画线段。

最后,我们需要为画图板添加鼠标监听器:

panel.addMouseListener(new MouseAdapter() {
  public void mousePressed(MouseEvent e) {
    prevX = e.getX();
    prevY = e.getY();
  }
});
panel.addMouseMotionListener(new MouseAdapter() {
  public void mouseDragged(MouseEvent e) {
    x = e.getX();
    y = e.getY();
    drawLine();
  }
});

在这个鼠标监听器实现中,我们在鼠标按下时保存鼠标当前位置的坐标,然后在鼠标拖动时获取当前位置的坐标,并调用drawLine方法进行绘制。

至此,我们的简单画图板完成了。当然,这只是一个开始,还有很多可以改进和添加的功能。但是,希望这个代码能给初学者提供一个简单的开始。

Java编程是一个非常有趣的领域,它可以帮助我们开发各种类型的应用程序和工具。无论你是刚开始学习Java,还是已经是一个经验丰富的开发人员,我相信你都会发现Java的绘图功能很有趣,也很实用。

  
  

评论区