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

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

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

مورد اول) من یه کلاس تعریف کردم به اسم 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);
}

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

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

0 رأی
1 جواب میانگین بازدید روزانه 0.08135 بازدید
+1 رأی
4 جواب میانگین بازدید روزانه 0.16324 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.08151 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 1.0745 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.29608 بازدید
سوال 5 سال قبل در تالار برنامه نویسی توسط hassanali (102 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 0.0880 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.0590 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.07154 بازدید
0 رأی
2 جواب میانگین بازدید روزانه 0.06134 بازدید
0 رأی
2 جواب میانگین بازدید روزانه 0.14304 بازدید
کانال تلگرام جواب یاب
...