java - 在 NetBeans 上的 JPanel 中用鼠标绘制线条

标签 java netbeans jpanel

我需要用鼠标在 JPanel 中画一条线,单击面板中的两个点。第一次单击将是该行的开头,第二次单击将是该行的结尾。

This is my programm

我有这样的东西:

    private void jPanel1MouseClicked(java.awt.event.MouseEvent evt) {                                     
    // TODO add your handling code here:
    Graphics g = this.jPanel1.getGraphics();

    int x = evt.getX();
    int y = evt.getY();

    g.drawLine(x, y, x, y);
}     

但它只绘制像素。 Line with coordinates 我需要这样的东西,但只需用鼠标点击来绘制它。

最佳答案

您正在从 (x, y) 到 (x, y) 绘制一条线,这就是为什么您只得到一个像素。您需要捕获第一次单击的坐标,然后在第二次单击时绘制线条。

private int startX = -1;
private int startY = -1;

private void jPanel1MouseClicked(java.awt.event.MouseEvent evt) {                                     
    if (startX == -1 && startY == -1) {
        startX = evt.getX();
        startY = evt.getY();
    } else {
        Graphics g = this.jPanel1.getGraphics();
        g.drawLine(startX, startY, 
                   evt.getX(), evt.getY());
        // reset the start point
        startX = -1;
        startY = -1;
    }
}     

关于java - 在 NetBeans 上的 JPanel 中用鼠标绘制线条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32991378/

相关文章:

java - NetBeans 平台提要阅读器教程

netbeans - 可卸载的 Netbeans 项目(pom 在本地存储库中不可用)

java - KeyListener 不改变 JPanel

java - 具有属于不同类型 parent 的实体的类型

java - 如何从我在该类中创建的类访问该类的变量?

java - Neo4j HA(2.0-快照),等待集群选举master超时

java - 做简单行走动画的好方法?

java - 在 recyclerview 中将 3 个 TextView 彼此相邻对齐时遇到问题

java - NetBeans maven 项目中的 Neo4j 2.1.6 Hello World

java - JPanel.getText();问题