繁体   English   中英

分别在列表中的每两个点之间画一条线

[英]drawing a line between each two points in a list respectively

嗨,我和netbeans一起工作。 我编写了一个具有两个类的代码(1) Demo (2) mainFrame which extends javax.swing.JFrame

首先,将运行我的mainFrame ,它将显示一个面板,您可以在其上放置一些点,然后单击按钮时; 所有点的维将存储在一个列表中,然后将这个列表发送到Demo class因为我必须按顺序放置点,以便可以分别在每两个点之间绘制一条线。 我在这里有两个问题:

  1. 我有该list <listOfPoints> ,如何在不创建mainFrame类的新对象的情况下将该列表发送到mainFrame类以绘制线条?

  2. 我应该用paint方法吗? 请通过java中的一些代码示例帮助我(使用netbeans)

    总计:

     I have a lot of points' dimension in my list ,I want to traverse my list in the ie, paint method and draw line between each pi and pi+1.how can I do this? 

谢谢

谷歌:netbeans java drawline

第一个答案

搜索

Graphics gg = buffImg.createGraphics();
        gg.setColor(Color.MAGENTA);
        gg.drawLine(10,10,buffImg.getWidth()-buffImg.getWidth()/10,

http://wws2.uncc.edu/tpw/tpwJavaNtebeansTutorial/index.html

关于你绘制点列表的问题

void drawList(Graphics gg, List points){
   MyPointClass prev p = null;
   for(MyPointClass p : points){
       if(prevp != null){
           gg.drawLine(prevp.x, prevp.y, p.x, p.y);
       }
       prev = p;
    }
}

如果你不想将对象从一个帧传递到另一个男性drawList静态然后你可以做MyClassContainingDrawLineMethod.drawList(gg,points);

您使用Netbeans甚至是否重要?

另外,回答:

我认为使用Swing,您通常会覆盖paintComponent(Graphics gg)方法来描述您希望如何绘制面板/框架。 并希望您的程序实际重绘时调用repaint()。

您可能需要阅读本教程: http//download.oracle.com/javase/tutorial/uiswing/特别是“执行自定义绘画”部分。

另外,请查看API的相应Swing和AWT部分。

您可以使用图形类的drawLine()方法绘制线条。 或者使用Line类(Line2D.Double等)来表示你的行然后去,graphicsObject.draw(line)等。

您可以做的就是将点添加到列表中,然后再添加到图形面板中(每次添加时都重新绘制),然后在按下按钮时,您可以运行该方法以在按钮的actionListener中处理列表。 所以类似:list = demo.processList(list)。 其中processList具有标题,例如:public List processList(List toProcess)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM