Sina.iRoid
سه شنبه 29 مهر 1393, 17:13 عصر
سلام.
دوستان من کد زیر و از روی کتاب دایتل نوشتم اما اصلا متوجه نمیشیم که چه طوری نوشته.
در مورد نقطه ها اصلا اطلاع ندارم. اینکه چرا از نقطه استفاده می کنن و چرا از محور های x و y هم استفاده شده. در کل بخش اصلی برنامه یعنی دو تا حلقه for و اصلا متوجه نمیشم.
ممنون میشم اگر یه راهنمایی کوچیک کنید.
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class PaintPanel extends JPanel {
private int pointCoutn = 0; //Count number of point
private Point[] points = new Point[1000]; //array of point with length 10000
//Constructor
public PaintPanel() {
addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e){
if (pointCoutn < points.length) {
points[pointCoutn] = e.getPoint();
++pointCoutn;
repaint();
}
}
});
}
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
//draw all point in array
for (int i = 0; i < pointCoutn; i++) {
g.fillOval(points[i].x, points[i].y, 4, 4);
}
}
}
import java.awt.BorderLayout;
import javax.swing.JFrame;
public class DriverClass {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(500, 500);
frame.setVisible(true);
PaintPanel paintPanel = new PaintPanel();
frame.add(paintPanel, BorderLayout.CENTER);
new PaintPanel();
}
}
و یه سوال دیگه اینکه اگر آرایه به پایان برسه دیگه چیزی رسم نمیشه. برای این چیکار باید انجام بدیم؟
ممنون.
دوستان من کد زیر و از روی کتاب دایتل نوشتم اما اصلا متوجه نمیشیم که چه طوری نوشته.
در مورد نقطه ها اصلا اطلاع ندارم. اینکه چرا از نقطه استفاده می کنن و چرا از محور های x و y هم استفاده شده. در کل بخش اصلی برنامه یعنی دو تا حلقه for و اصلا متوجه نمیشم.
ممنون میشم اگر یه راهنمایی کوچیک کنید.
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class PaintPanel extends JPanel {
private int pointCoutn = 0; //Count number of point
private Point[] points = new Point[1000]; //array of point with length 10000
//Constructor
public PaintPanel() {
addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e){
if (pointCoutn < points.length) {
points[pointCoutn] = e.getPoint();
++pointCoutn;
repaint();
}
}
});
}
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
//draw all point in array
for (int i = 0; i < pointCoutn; i++) {
g.fillOval(points[i].x, points[i].y, 4, 4);
}
}
}
import java.awt.BorderLayout;
import javax.swing.JFrame;
public class DriverClass {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(500, 500);
frame.setVisible(true);
PaintPanel paintPanel = new PaintPanel();
frame.add(paintPanel, BorderLayout.CENTER);
new PaintPanel();
}
}
و یه سوال دیگه اینکه اگر آرایه به پایان برسه دیگه چیزی رسم نمیشه. برای این چیکار باید انجام بدیم؟
ممنون.