View Full Version : مشکل در رسم شکل (graphics g)
dezmond
جمعه 15 خرداد 1388, 14:28 عصر
سلام بچه ها من تو graphics g مشکل دارم. وقتی از یه کلاس به کلاس دیگه بهش ارسال می کنم مقدار null میگیرم . با مقدار this.getGraphics هم مقدار دهی کردم ولی با ز هم نشد ....
کمکم کنید .....
این کلاس رسم شکل که باید graphics g مقدار دهی بشه ....
public class myshape extends JPanel {
///Graphics g=this.getGraphics();
public void draw_rect(Graphics g,int my_x,int my_y,int my_w,int my_h,Color c)
{
super.paintComponent(g);
g.drawRect(my_x, my_y, my_w, my_h);
g.setColor(c);
}
این هم کلاسی که ازش ارسال می کنم
draw_shape.draw_rect(????????, x, y, w, h, c);
JFrame frame=new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
frame.add(draw_shape);
frame.setSize(500, 500);
frame.setVisible(true);
java_nith
جمعه 15 خرداد 1388, 17:44 عصر
من آنقدر برنامه نویسیم هنوز خوب نیست که بتونم بقام کجا اشتباه است
ولی من برای شما یه برنامه نوشتم که اون کاری رو که میخواین انجام میده
اگه از دوستان کسی میدون کجای این کد ایشون اشکال داره بگه که ماهم یاد بگیریم
مرسی
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
class main{
public static void main(String []args){
new Hente();
}
}
class NewMain extends JPanel {
public void paintComponent(Graphics flate) {
super.paintComponent(flate);
flate.drawRect(100, 100, 100, 100);
}
}
class Hente extends JFrame{
Hente(){
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(300, 300);
add(new NewMain());
}
}
javaphantom
جمعه 15 خرداد 1388, 17:54 عصر
من آنقدر برنامه نویسیم هنوز خوب نیست که بتونم بقام کجا اشتباه است
ولی من برای شما یه برنامه نوشتم که اون کاری رو که میخواین انجام میده
اگه از دوستان کسی میدون کجای این کد ایشون اشکال داره بگه که ماهم یاد بگیریم
مرسی
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
class main{
public static void main(String []args){
new Hente();
}
}
class NewMain extends JPanel {
public void paintComponent(Graphics flate) {
super.paintComponent(flate);
flate.drawRect(100, 100, 100, 100);
}
}
class Hente extends JFrame{
Hente(){
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(300, 300);
add(new NewMain());
}
}
این دو تغییر رو بده کارت درست می شه.
در کلاس NewMain بجای متدود paintComponent این رو بنویس
@Override
public void paint(Graphics g) {
g.drawRect(100,100,100,100);
}
در کلاس Hente بجای متدود add این رو اضافه کن
getContentPane().add(new NewMain());
java_nith
جمعه 15 خرداد 1388, 18:04 عصر
میشه در مورد کدتن مخصوصا این آخری یه کم توضیح بدید؟
متد getContentPane().
چه کار میکنه؟
bushehr-it
پنج شنبه 21 خرداد 1388, 20:37 عصر
یک ظرف که میتونی آبحکتاتو توی اون بزاری
ermia2008
یک شنبه 24 خرداد 1388, 11:54 صبح
سلام بچه ها من تو graphics g مشکل دارم. وقتی از یه کلاس به کلاس دیگه بهش ارسال می کنم مقدار null میگیرم . با مقدار this.getGraphics هم مقدار دهی کردم ولی با ز هم نشد ....
کمکم کنید .....
این کلاس رسم شکل که باید graphics g مقدار دهی بشه ....
public class myshape extends JPanel {
///Graphics g=this.getGraphics();
public void draw_rect(Graphics g,int my_x,int my_y,int my_w,int my_h,Color c)
{
super.paintComponent(g);
g.drawRect(my_x, my_y, my_w, my_h);
g.setColor(c);
}این هم کلاسی که ازش ارسال می کنم
draw_shape.draw_rect(????????, x, y, w, h, c);
JFrame frame=new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
frame.add(draw_shape);
frame.setSize(500, 500);
frame.setVisible(true);
سلام دوست عزيز.
براي رفع مشكل شما بايد ...draw_shape.draw_rect رو در متد paint بنويسيد و آرگومان Graphics مورد نياز براي draw_rect رو از طريق اون بفرستيد.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.