您好
我和netbeans一起工作。
我编写了一个包含两个类(1) Demo (2) mainFrame which extends javax.swing.JFrame
首先,我的mainFrame
将会运行,它会显示一个面板,您可以在其上放置一些点,然后单击按钮;所有点的维度将存储在列表中,然后我将此列表发送到Demo class
,因为我必须按顺序放置点,您可以分别在每两个点之间画一条线。
我有两个问题:
我有list <listOfPoints>
,如何在不创建mainFrame
类的新对象的情况下将此列表发送到mainFrame
类来绘制线条?
我应该使用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?
谢谢
答案 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)。