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

时间:2010-11-19 03:51:11

标签: java netbeans paint

您好 我和netbeans一起工作。 我编写了一个包含两个类(1) Demo (2) mainFrame which extends javax.swing.JFrame

的代码

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

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

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

    完全:

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

2 个答案:

答案 0 :(得分:1)

Google: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);

答案 1 :(得分:1)

你使用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)。