ورود

View Full Version : Graphics



ahmad156
چهارشنبه 22 تیر 1390, 11:11 صبح
سلام.تابع paint که جایی فراخوانی نمیشه چه جور اجرا میشه؟چه جوری به Graphics مقداردهی کنم.ممنون
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class CircleDraw extends Frame {
Shape circle = new Ellipse2D.Float(100.0f, 100.0f, 100.0f, 100.0f);
Shape square = new Rectangle2D.Double(10, 10,10, 10);
public void paint(Graphics g) {
Graphics2D ga = (Graphics2D)g;
ga.draw(circle);
ga.setPaint(Color.BLACK);
ga.fill(circle);
ga.setPaint(Color.red);
ga.draw(square);
}

public static void main(String args[]) {
Frame frame = new CircleDraw();
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
});
frame.setSize(300, 250);
frame.setVisible(true);
}
}

ahmad156
پنج شنبه 23 تیر 1390, 13:28 عصر
کسی که جوابم رو نداد پس حداقل خودم که فهمیدم برای بقیه بگم شاید به دردش خورد
تابع paint نیاز به فراخونی نداره و خودش هر موقع که شی ای از کلاس ایجاد میشه اجرا میشه.در ضمن خود تابع به Graphics مقدار میده.
با تشکر از خودم

alirezaD1
دوشنبه 27 تیر 1390, 00:55 صبح
سلام دوست عزیز
اون نکته رو فهمیدی بهتر این رو هم بدونی :
یک متد به نام repaint() وجود داره که می تونی با استفاده از اون متد paint یک پنل/فرم رو صدا بزنی .
درسته که فرم خودش متد paint خودشو صدا می زنه ولی بعضی وقت ها لازمه که ما این کار رو به صورت دستی انجام بدیم . مثلا بعد از اینکه فرم روی صفحه ترسیم شد می خوایم یک دایره روی این فرم رسم کنیم یا یک نقطه رو روی فرم با استفاده از یک thread یا یک تابع یا .. حرکت بدیم . در این مواقع باید از متد repaint استفاده کنیم.

اگه سوالی داشتی بپرس

ahmad156
سه شنبه 28 تیر 1390, 11:36 صبح
ممنون دوست عزیز
راستی تابعی که چک کنه یه متغیر مقداردهی اولیه شده چیه؟