ترسیم شکل روی یک پنل در جاوا swing

0 رأی
میانگین بازدید روزانه 0.57622 بازدید

چند مورد مشکل داشتم که اگه راهنمایی کنید ممنون میشم

مورد اول) من یه کلاس تعریف کردم به اسم Test که از کلاس JFrame ارث بری میکنه . تو قسمت سازنده این کلاس یه پنل تنظیم کردم که مثلا رنگش قرمزه . بعد میام متد paint رو توی این کلاس override میکنم(تو بدنه کلاس و خارج از سازنده) و کد هایه مثلا رسم یه مستطیل رو توش مینویسم . بعد از اجرا (ساخت شی از این کلاس)مستطیل روی فریم رسم میشه اما اون پنل مورد نظر دیگه اعمال نمیشه و هر وقت متد paint رو غیر فعال میکنم اون موقع اون پنل به فریم اضافه میشه و همزمان هر دو کار نمیکنن . چطور میتونم این مشکلو برطرف کنم که هم پنل اعمال بشه و هم شکل مورد نظر روی فریم رسم بشه ؟ آیا میتونم از روش دیگه ای برای رسم شکل روی فریم به غیر از متد paint استفاده کنم که این مشکل برطرف بشه؟

مورد ذوم) من تو کلاس Test که ایجاد کردم متد paint رو خارج از سازنده Override کردم پس چرا به محض ایجاد شی از کلاس متد paint اجرا میشه ؟ چطور میتونم این متد رو کنترل کنم و مثلا کد رسم یه شکلو بنویسم ولی کاری کنم که به صورت خودکار اجرا نشه ؟

مورد سوم) وقتی که یه شکلی رو به کمک متد paint روی فریم رسم میکنیم  بعد چطور میتونیم اون شکلو پاک کنیم؟از چه روش دیگه ای میتونم برای رسم شکل روی فریم که ساده تر از این متد paint باشه استفاده کنم؟

دوستان کدهایه اون کلاس Test که بالا توضیح دادم هم گذاشتم میتونید ببینید:

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test1 extends JFrame {

public static void main(String[] args) {

  Test1 a=new Test1();
 
  a.setVisible(true);
 
}
Test1()
{
  super("Test");
  this.setBounds(1400,400,400,400);
  this.setLayout(new FlowLayout());
 
  JPanel p=new JPanel();
 
  p.setBackground(Color.RED);
 
  this.setContentPane(p);
}

@Override
public void paint(Graphics g)
{
  g.setColor(Color.GREEN);
  g.fillRect(50, 50, 100, 100);
}

}
سوال 3 سال قبل در تالار برنامه نویسی توسط ali-nb (10 امتیاز)
ویرایش 2 سال قبل توسط Saeed Zarinfam

سوال های مشابه

0 رأی
1 جواب میانگین بازدید روزانه 0.08146 بازدید
+1 رأی
4 جواب میانگین بازدید روزانه 0.15343 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.08162 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.363 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.27630 بازدید
سوال 6 سال قبل در تالار برنامه نویسی توسط hassanali (102 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 0.0891 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.0596 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.07161 بازدید
0 رأی
2 جواب میانگین بازدید روزانه 0.06144 بازدید
0 رأی
2 جواب میانگین بازدید روزانه 0.14321 بازدید
کانال تلگرام جواب یاب
...