জাভা সহ "সর্বদা উপরে" উইন্ডোজ


85

জাভাতে, ব্যবহারকারী যদি অন্য অ্যাপ্লিকেশনটিতে ফোকাস পরিবর্তন করে তবে "উইন্ডো সর্বদা শীর্ষে" থাকা একটি উইন্ডো থাকার কোনও উপায় আছে কি? আমি ওয়েবে অনুসন্ধান করেছি এবং সমস্ত সমাধান দেশী বাইন্ডিংয়ের সাথে কিছু ধরণের জেএনআই ইন্টারফেসের দিকে ঝুঁকছি। সত্যিই এটি করার একমাত্র উপায় হতে পারে না? .. নাকি?

উত্তর:


159

Windowশ্রেণীর এই পদ্ধতিটি ব্যবহার করে দেখুন :

উইন্ডো.সেটএলওয়েসঅনটপ (বুলিয়ান)

এটি উইন্ডোজ টাস্ক ম্যানেজারে ডিফল্ট হিসাবে একইভাবে কাজ করে: অন্য অ্যাপ্লিকেশনটিতে স্যুইচ করুন তবে এটি সর্বদা শীর্ষে প্রদর্শিত হয়।

এটি জাভা 1.5 যোগ করা হয়েছে

কোডের উদাহরণ:

import javax.swing.JFrame;
import javax.swing.JLabel;

public class Annoying {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Hello!!");

        // Set's the window to be "always on top"
        frame.setAlwaysOnTop( true );

        frame.setLocationByPlatform( true );
        frame.add( new JLabel("  Isn't this annoying?") );
        frame.pack();
        frame.setVisible( true );
    }
}

বিকল্প পাঠ

সক্রিয় না থাকলেও উইন্ডো শীর্ষে থাকে


4
আপনি ভাবেন যে "জাভা অ্যাপ্লিকেশন সর্বদা শীর্ষে" সন্ধানের জন্য এই উত্তরটি থাকবে তবে এটি এটি খুঁজে পেল না। ধন্যবাদ
Laplie Anderson

46
কি অনুমান। এখন এটা !! :) এটি আপনাকে এখানে এনেছে! google.com/search?&q=java+application+always+on+top
অস্কারআরাইজ

এটি সহজ এবং দুর্দান্ত। আমিও এর মতো কিছু খুঁজছিলাম, কিন্তু জানতাম না যে তারা জাভা 1.5 তে এটি প্রয়োগ করেছে। পোস্ট করার জন্য ধন্যবাদ।
কুশল পদ্দিয়াল

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

4
@ ড্রিম লেন আমি সম্ভবত এটি একটি নতুন প্রশ্ন হিসাবে জিজ্ঞাসা করেছি
রজারডপ্যাক

11

আমার পর্যবেক্ষণ থেকে আমি দেখতে পেলাম যে সর্বদা সর্বশেষে থাকার জন্য অনুরোধ করা সর্বশেষ প্রক্রিয়াতে ওভারএলঅনটপ সুযোগ সুবিধা দেওয়া হয়।

সুতরাং, যদি আপনার কাছে এমন একটি অ্যাপ্লিকেশন থাকে যা setAlwaysOnTop(true)পরে এবং অন্য কোনও অ্যাপ্লিকেশন এই বিকল্পটি ব্যবহার করে, তবে দ্বিতীয় অ্যাপ্লিকেশনটিকে বিশেষাধিকার দেওয়া হবে। এটিকে ঘিরে কাজ করার জন্য আমি যখনই বর্তমান উইন্ডোটির উপরে কোনও উইন্ডো আসে তখনই আমি setAlwaysOnTop(false)আবার সেট করে রেখেছি setAlwaysOnTop(true)

আমি এটা চেক করে থাকেন wordwebমধ্যে windows। ওয়ার্ডওয়েব অ্যাপ্লিকেশনগুলির মধ্যে একটি যা AlwaysOnTopঅপশনটি ব্যবহার করেOS

এটি আপনার গেমের দৃশ্যের সাথে সঠিকভাবে কাজ করে কিনা সে সম্পর্কে আমি নিশ্চিত নই।

সতর্কতা : আমি এর পার্শ্ব প্রতিক্রিয়া সম্পর্কে অবগত নই।

এখানে কোড উদাহরণ:

import java.awt.event.*;

import javax.swing.*;

public class MainWindow extends JFrame implements WindowFocusListener
{
    public MainWindow()
    {
        addWindowFocusListener(this);
        setAlwaysOnTop(true);
        this.setFocusable(true);
       // this.setFocusableWindowState(true);
        panel = new JPanel();
        //setSize(WIDTH,HEIGHT);
        setUndecorated(true);
        setLocation(X,Y);
        setExtendedState(MAXIMIZED_BOTH);
        setVisible(true);
    }

    public void windowGainedFocus(WindowEvent e){}
    public void windowLostFocus(WindowEvent e)
    {
        if(e.getNewState()!=e.WINDOW_CLOSED){
            //toFront();
            //requestFocus();
            setAlwaysOnTop(false);
            setAlwaysOnTop(true);
            //requestFocusInWindow();
            System.out.println("focus lost");
        }

    }

    private JPanel panel;
    private static final int WIDTH = 200;
    private static final int HEIGHT = 200;
    private static final int X = 100;
    private static final int Y = 100;

    public static void main(String args[]){
              new MainWindow();}
    }

এটিকে আবার মিথ্যা ও সত্যে সেট করা যখন অন্য উইন্ডো শীর্ষে আসে তখন কোনও সাধারণ কারণে কার্যকর সমাধানের মতো শোনায় না - যদি অন্য অ্যাপ্লিকেশন একই জিনিস করে তবে কী হবে?
ট্রেজকাজ

@ ট্রেজকাজ ওয়েল, এটি একটি বৈধ পয়েন্ট। আমি এখন আর দোলের সংস্পর্শে নেই।
গোলাপী প্যান্থার

এটি আমার ব্যবহারের ক্ষেত্রে পুরোপুরি কাজ করে! প্রথমে এটি মিথ্যাতে সেট করা কী ছিল was
রোকোকো

0

সেটফুলস্ক্রিন উইন্ডো ব্যবহার করবেন না, কেবল পর্দার আকার এবং তারপরে সেটসাইজ পাবেন এবং সবকিছু ঠিকঠাক হবে।


এটা কোন উত্তর বা মন্তব্য?
বিজ্ঞানী ব্যর্থ হয়েছে

@ ফিল্ড সায়েন্টিস্ট একটি গৌরবযুক্ত মন্তব্য করেছেন
clankill3r
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.