জাভারে কার্সার এর চারপাশে হলুদ বৃত্ত

জাভাতে কার্সারের চারপাশে একটি হলুদ বৃত্ত কিভাবে তৈরি করতে হয় তা আমি চিন্তা করতে চেষ্টা করছি। জিনিস যে আমরা একটি পর্দা রেকর্ডার পেয়েছি যে (স্পষ্টত) পর্দা রেকর্ড। কীওয়ার্ড "জাভাতে কার্সারের চারপাশে হলুদ বৃত্ত" ব্যবহার করে Google কেবলমাত্র আমাকে WM এবং অন্যান্য অ্যাপ্লিকেশনের উপর একটি MAC এ কার্সারের কাছাকাছি একটি হলুদ বৃত্তকে কিভাবে যোগ করতে দেয়, কিন্তু জাভার ব্যবহারকারীদের কম্পিউটারে কীভাবে এটি করবেন না অ্যাপ্লিকেশন শুরু।

বর্তমান চিত্রগুলি ব্যবহার না করে আমি কীভাবে এটি করতে পারি? কিছু অপাসিটি সঙ্গে একটি সহজ হলুদ বৃত্ত অঙ্কন করা সহজ হবে, এটি পর্দায় মাউস অনুসরণ করে। এবং এছাড়াও, এটি যদি অদৃশ্য করা এবং ব্যবহারকারীর মাউস-বোতাম ক্লিক করার পরে পুনরায় আবির্ভূত হয়, তাহলে তা সন্ত্রস্ত হবে।

0
আপনি একটি সমাধান পাওয়া যায়?
যোগ লেখক coding_idiot, উৎস
@ মাইকেল 667 ভাল, কারন কারুর কার্সর পরিবর্তন করার পরিবর্তে আমি অন্য কিছু খুঁজে পাচ্ছি না তাই আসলে কিছু করার চেষ্টা করা কঠিন। আমি এটা কিভাবে বাস্তব উদাহরণ বা কোন তত্ত্ব খুঁজে পাওয়া যায় নি। এবং আমার জাভা-জ্ঞানটি উন্নত হয় না। আমি ওয়েবসাইট সাধারণত বিকাশ
যোগ লেখক Nemo Caligo, উৎস
@ গুলিগুলি যদি আপনি সুইং বলে থাকেন, তবে হ্যাঁ, যদিও আমি নিশ্চিত নই যে কীভাবে কার্সারকে আরো দৃশ্যমান করার জন্য কী কী ক্লাস ব্যবহার করতে হবে তা আমাকে বুঝতে সাহায্য করবে। জিনিস জাভা সুইং লাইব্রেরি বিশাল ধরনের। আমি বলতে চাচ্ছি, মাউস-শ্রোতাগুলি খুঁজে পাওয়া খুবই সহজ। কিন্তু মাউসের চারপাশে একটি বৃত্ত তৈরি করতে কী বোঝা যায় তা কঠিন।
যোগ লেখক Nemo Caligo, উৎস
@ সাব, এটা সত্য যে, আমি এখনো নিশ্চিত নই যে এই প্যানেল কীভাবে মাউসটি অনুসরণ করে। এছাড়াও, আমি নিশ্চিত নই যদি এটি জাভাস্ক্রিপ্টের মত কাজ করতে পারে, আপনি একটি মাউস মাউন্ট ইভেন্টটি গ্রহণ করেন এবং সেই প্যানেলের x- y পজিশনটি পরিবর্তন করুন, মাউসের x এর y coordinate করুন এবং প্যানেল কেন্দ্র x। Y পজিশন করুন মাউস x | y পজিশন এ থাকা যে কাজ করে, এটি কি অ্যাপ্লিকেশন ব্যবহার করে কম্পিউটারে খুব দাবি করা হবে, বা ব্যবহারকারীর কোনও বিলম্বের কোনও বিজ্ঞপ্তি ব্যবহার করবেন না? এই সব তত্ত্ব, এবং এমনকি যদি আমি এটা কিভাবে তত্ত্ব করতে জানি, আমার কোডে এটি কিভাবে তৈরির সামান্য ধারণা নেই।
যোগ লেখক Nemo Caligo, উৎস
হ্যাঁ, নীচের উত্তর চেক করুন। এটা কি করার সবচেয়ে সহজ উপায় ছিল।
যোগ লেখক Nemo Caligo, উৎস
আপনি কি swings সম্পর্কে শুনেছেন?
যোগ লেখক Subs, উৎস
@ নানাশিডি, যদি আপনি জানেন তবে আপনাকে বুঝতে হবে যে আপনি উপরে স্তর হিসাবে একটি স্বচ্ছ প্যানেল স্থাপন করতে পারেন এবং মাউস পয়েন্টারের অবস্থান থেকে একটি বৃত্ত আঁকুন এবং আপনি ( মাউশযুক্ত ) ক্লিক করলে - স্বচ্ছ লুকান প্যানেলটি যাতে আপনার পিছনে (প্রধান) প্যানেলটি আপনার মাউসরেলেজযুক্ত ইভেন্টটি নেয়
যোগ লেখক Subs, উৎস

2 উত্তর

বিদ্যমান মাউস পয়েন্টারের চারপাশে কোনও বৃত্ত যুক্ত করা সম্ভব নয়। আপনি শুধুমাত্র একটি সম্পূর্ণ চিত্র মাউস পয়েন্টার সেট করতে পারেন।

0
যোগ
আপনার উত্তরের জন্য ধন্যবাদ, কিন্তু আমি ভেবেছি এটি সমাধান নয়। অনুসন্ধানের সময় যদি আমি একটি উত্তর পেয়ে থাকি, আমি এখানে জিজ্ঞাসা করব না। সমস্যা হল যে আমি মাউস কার্সারটি সম্পূর্ণভাবে পরিবর্তন করতে চাই না। আমি শুধু এটির কাছাকাছি একটি হলুদ বৃত্ত তৈরি করতে চাই। এবং আমার প্রশ্ন ছিল যে ইমেজ ব্যবহার না করে এটা সম্ভব।
যোগ লেখক Nemo Caligo, উৎস
বুঝেছি. উত্তর করার জন্য ধন্যবাদ. আমি আপনার উত্তরটি এই প্রশ্নের উত্তর হিসাবে চিহ্নিত করবো কারণ আমি মনে করি না যে এটি গৃহীত উত্তরগুলির মত মন্তব্য করা সম্ভব।
যোগ লেখক Nemo Caligo, উৎস
বিদ্যমান মাউস পয়েন্টারের চারপাশে কোনও বৃত্ত যুক্ত করা সম্ভব নয়। আপনি শুধুমাত্র একটি সম্পূর্ণ চিত্র মাউস পয়েন্টার সেট করতে পারেন।
যোগ লেখক michael667, উৎস

এটি একটি MouseMotionListener সংযুক্ত করে আপনার কম্পোনেন্টের মাধ্যমে এটি করা সম্ভব, তবে এটি আপনার কাজটি ঠিকভাবে ঠিক করার জন্য এটি একটি সামান্য কাজ করবে।

আমি এই মত কিছু থেকে শুরু হবে:

private static final double RADIUS    = 15.0;
private static final double DIAMETER  = 2.0 * RADIUS;
private static final Color  XOR_COLOR = Color.yellow;

private static Shape m_circle = null;

@Override
public void mouseMoved(MouseEvent e)
{
    Graphics2D g2     = (Graphics2D) getGraphics();
    Point      p      = e.getPoint();
    Shape      circle = new Ellipse2D.Double(p.getX() - RADIUS, p.getY() - RADIUS, DIAMETER, DIAMETER);

    clearCircle(g2);

    g2.setXORMode(XOR_COLOR);
    g2.draw(circle);
    g2.setPaintMode();

    m_circle = circle;
}

private void clearCircle(Graphics2D g2)
{
    if (m_circle != null)
    {
        g2.setXORMode(XOR_COLOR);
        g2.draw(m_circle);
        g2.setPaintMode();

        m_circle = null;
    }
}

এটি একটি মাউস লেস্টেরার যোগ করে আপনি যা শুনতে পারেন তা মাউসজনিত ইভেন্টে পুরাতন বৃত্তটি সাফ করা নিশ্চিত করতে এটি অবশ্যই প্রয়োজনীয় হবে। এটি মাউস ব্যবহার করা হয়েছে/mouseReleased/mouseClicked ইভেন্ট যা এটি একটি ব্যবহারকারীর মাউস ক্লিক নেভিগেশন অদৃশ্য/পুনরায় আবিব জন্য প্রয়োজন।

XOR ব্যবহার করা সুবিধাজনক কারণ একই রং এবং শৈলী সঙ্গে একই আকৃতি পুনরায় প্রকাশ করে স্ক্রিনটি পুনরুদ্ধার করা খুব সহজ, কিন্তু এটি আপনার জন্য যা যথেষ্ট তা নয়। যে স্ক্রিনটি আপনি আঁকতে যাচ্ছেন তার চিত্রটি ক্যাপচার করে পর্দাটি মেরামত করা সম্ভব। একটি নতুন অবস্থানে একটি বৃত্ত আঁকা আগে ক্ষতিগ্রস্ত এলাকা repainting দ্বারা পর্দার থেকে বৃত্ত সরানো যাবে।

0
যোগ
getGraphics() এটি কোথা থেকে আসে?
যোগ লেখক coding_idiot, উৎস
আপনি একটি সম্পূর্ণ কাজ উদাহরণ পোস্ট করতে পারেন? আমি কিছু চেষ্টা করেছি কিন্তু এটি কাজ না করে।
যোগ লেখক coding_idiot, উৎস
getGraphics() মূলত java.awt.Component থেকে আসে কিন্তু এই কোডটি একটি উপবিভাগের প্রয়োজন যা একটি Graphics2D উদাহরণ প্রদান করে, যেমন javax.swing.JComponent
যোগ লেখক richj, উৎস
আমার উত্তর কোড শুধুমাত্র mouseMoved এর বাস্তবায়ন (...) একটি ক্লাস প্রয়োগকারী MouseMotionListener জন্য যদি আপনি একটি সম্পূর্ণ কাজের উদাহরণ জাভা অ্যাপ্লিকেশন প্রয়োজন, এই জাভা টিউটোরিয়াল একটি ভাল শুরু বিন্দু প্রদান করে: docs.oracle.com/javase/tutorial/uiswing/events/… - আপনি আমার কোড সহ mouseMoved এর স্টাব বাস্তবায়ন প্রতিস্থাপন করতে সক্ষম হবেন।
যোগ লেখক richj, উৎস