نمایش نتایج 1 تا 3 از 3

نام تاپیک: ساخت دایره که هنگام ساخت بشه سایزش رو با ماوس تغییر داد

  1. #1

    Question ساخت دایره که هنگام ساخت بشه سایزش رو با ماوس تغییر داد

    سلام
    من میخام یه چیزی شبیه برنامه paint بسازم که وقتی دایره رو میخام بسازم همون اول بتونم با ماوس درگ کنمو اندازشو با ماوس بکشم و ست کنم . کداشو نوشتم ولی نمیدونم چرا خوب اجرا نمیشه قبلا اینکارو کرده بودم ولی الان یادم رفته چوری بود اون موقع خوب نشون میداد ولی الان صفجه رو موقع درگ کردن ریفرش نمیکنه ، بعد از اینکه پنجره رو تغییر اندازه میدم فقط صفحه ریفرش میشه . ببینید مشکل کدم چیه من که هرچی فکر کردم نتونستم بفهمم . مغزم پوکید
    این کلاس دایره :

    import java.awt.Component;
    import java.awt.Graphics;
    import java.awt.Point;


    public class Cricle extends Component{
    private float radios;
    private float dimiter;// شعاع
    private float mohit;
    private float masahat;
    private int X;
    private int Y;
    public float getRadios() {
    return radios;
    }



    public float getDimiter() {
    return dimiter;
    }

    public void setRadios(float radios) {
    this.radios = radios;
    this.dimiter=radios*2;
    this.masahat=(float) (Math.PI*radios*radios);
    this.mohit=(float) (Math.PI*2*radios);
    }

    public void setDimiter(float dimiter) {
    setRadios(dimiter/2);
    }



    public float getMohit() {
    return (float) (2*radios*Math.PI);
    }

    public void setMohit(float mohit) {
    setRadios((float) (mohit/Math.PI/2));
    }

    public float getMasahat() {
    return masahat;
    }

    public void setMasahat(float masahat) {

    setRadios((float) (mohit/Math.PI/2));

    }

    public Cricle(Point p,float dimiter) {
    setDimiter(dimiter);
    X=p.x;
    Y=p.y;
    }

    public Cricle() {

    }

    public Cricle(Point p,int dimiter) {
    setDimiter(dimiter);
    X=p.x;
    Y=p.y;
    }


    public void draw(Graphics g){
    g.drawOval(X, Y, (int)radios, (int)radios);

    }

    }


    این کلاس panel

    import java.awt.Graphics;
    import java.awt.Point;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseMotionAdapter;
    import javax.swing.*;

    public class MyPanel extends JPanel {
    MouseEvent ev=null;
    int r=100;
    Cricle cricle;
    Point firstp;
    MyPanel() {

    addMouseListener(new MouseAdapter() {
    @Override
    public void mousePressed(MouseEvent e) {
    firstp=e.getPoint();
    cricle=new Cricle(firstp, 0);
    }
    });

    addMouseMotionListener(new MouseMotionAdapter() {
    @Override
    public void mouseDragged(MouseEvent e) {

    r=e.getX();
    cricle.setRadios(r);
    refresh();
    }
    });

    }

    public void refresh(){
    this.repaint();
    }

    @Override
    public void paintComponent(Graphics g) {
    super.paintComponents(g);
    if(firstp!=null)
    cricle.draw(g);
    }
    }


    اینم که کلاس اصلی :

    import javax.swing.JFrame;


    public class JavaApplication17 {


    public static void main(String[] args) {
    JFrame fram=new JFrame();
    MyPanel panel=new MyPanel();



    fram.setSize(400,400);
    fram.add(panel);
    fram.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
    fram.setVisible(true);
    }

    }

    [COLOR=inherit !important]


    [/COLOR]

  2. #2

    نقل قول: ساخت دایره که هنگام ساخت بشه سایزش رو با ماوس تغییر داد

    این شکلی میشه وقتی درگ میکنم ! احساس میکنم کدم درسته مشکل از یه جای دیگه باید باشه ! چون طبق یه آموزشم پیش رفتم همه چیز شبیه آموزشه ولی مثله آموزش نمیشه و یه مشکلی تو گرافیک پنجره هام هست !!
    Untitled.png

  3. #3

    نقل قول: ساخت دایره که هنگام ساخت بشه سایزش رو با ماوس تغییر داد

    دیگه خودم مشکلو پیدا کردم !!
    تو قسمت override کردن paintcomponent به جای فراخوانی super.paintcomponent یه s آخرش اضاف شده بود !

    ینی یدونه S اضافه که نه سینتکس اروری میداد نه هیچی حدود 4 ساعته منو علاف خودش کرده
    برنامه نویسی هم دردسرای خودشو داره دیگه چه میشه کرد !

تاپیک های مشابه

  1. پاسخ: 1
    آخرین پست: جمعه 22 اسفند 1393, 12:44 عصر
  2. سوال: آیا راهی هست که مثلا" lable ها رو داخل حلقه تغییر داد
    نوشته شده توسط m.h.movahedi در بخش C#‎‎
    پاسخ: 6
    آخرین پست: پنج شنبه 20 آبان 1389, 15:54 عصر
  3. پاسخ: 3
    آخرین پست: دوشنبه 14 تیر 1389, 20:20 عصر
  4. چطور میشه متن یک textbox رو تو ontextchange تغییر داد
    نوشته شده توسط daneshpazho در بخش C#‎‎
    پاسخ: 2
    آخرین پست: پنج شنبه 28 دی 1385, 07:57 صبح
  5. DBGridی که بتوان هر سطر اون رو با رنگ و فونت خاصی نوشت
    نوشته شده توسط saeed_d در بخش برنامه نویسی در Delphi
    پاسخ: 6
    آخرین پست: دوشنبه 26 بهمن 1383, 16:16 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •