জেফ্রেম ম্যাক্সিমাইজ উইন্ডো


90

আমি সুইং ব্যবহার করে একটি দ্রুত এবং নোংরা অ্যানিমেশন একসাথে রাখছি। আমি চাই উইন্ডোটি সর্বাধিক করা হোক। আমি এটা কিভাবে করবো?

উত্তর:


134

আপনি যদি জেফ্রেমে প্রসারিত করেন তবে:

public void run() {
    MyFrame myFrame = new MyFrame();
    myFrame.setVisible(true);
    myFrame.setExtendedState(myFrame.getExtendedState() | JFrame.MAXIMIZED_BOTH);
}

13
একটি দৃষ্টান্তের মাধ্যমে স্থির ক্ষেত্রটি অ্যাক্সেস করা খারাপ অভ্যাস। JFrame.MAXIMIZED_BOTHপরিবর্তে ব্যবহার করুন।
নিমক্যাপ

4
উপরের সাথে বিশাল, বিশাল বাগ এবং সমস্যাগুলি! (ভাল, ঠিক আছে, কোনও বড় পরিণতি না দিয়ে ছোটখাটো সতর্কতা ...) ফ্রেম হওয়া উচিত MA :)
ম্যানিয়াস

আপনি প্রথমে সেটভিজিবলকে (সত্য) কল করবেন কেন? এটা কি তাৎপর্যপূর্ণ? এটি (উবুন্টু) ছাড়াও সূক্ষ্মভাবে কাজ করে।
এভিড্রাগন

4
setVisible(true)প্রথম ছাড়া ফ্রেমটি সঠিকভাবে আকারের হয় না। আমি এটি আগে এবং পরে উভয়ই চেষ্টা করেছি setExtendedState()এবং setVisible()অবশ্যই প্রথম হতে হবে।
মজিবসন

4
@ ক্রুসেডার একেবারে এখানে কোনও সমস্যা নেই, যেহেতু উভয়ই একই ধ্রুবক ক্ষেত্র (যার JFrameউত্তরাধিকার সূত্রে Frame) বোঝায় ।
গিলিয়াম পোলেট

18

কিছুটা এইরকম this.setExtendedState(this.getExtendedState() | this.MAXIMIZED_BOTH);

import java.awt.*;
import javax.swing.*;

public class Test extends JFrame
{
    public Test()
    {
        GraphicsEnvironment env =
GraphicsEnvironment.getLocalGraphicsEnvironment();
        this.setMaximizedBounds(env.getMaximumWindowBounds());
        this.setExtendedState(this.getExtendedState() | this.MAXIMIZED_BOTH);
    }

    public static void main(String[] args)
    {
        JFrame.setDefaultLookAndFeelDecorated(true);

        Test t = new Test();
        t.setVisible(true);
    }
}

কিসের |জন্য? এটি কি একটি করে, এবং যদি এটি ব্যর্থ হয় তবে এটি অন্যটি করে? বা আপনি প্রোগ্রামার পছন্দটি ইঙ্গিত করছেন (মানে এই কলটিতে যাওয়ার জন্য A | B এর মধ্যে একটি চয়ন করুন?) আমি এই সিনট্যাক্সটি আগে দেখিনি।
পিওরফেরেট

@ পিফারফ্রেট এটি "বিটওয়াইস ইনক্লুসিভ ওআর" অপারেটর, এটি অপরেন্ডে উপস্থিত থাকলে কিছুটা অনুলিপি করে। ( ডকস.ওআরকল / জাভাসে / টিউটোরিয়াল / জাভা / নান্টস্যান্ডবোল্টস / or বা টিউটোরিয়ালস্পয়েন্ট
জাভা

14

যদি আপনি কোন জে ফ্রেম ব্যবহার করেন তবে এটি ব্যবহার করে দেখুন

JFrame frame = new JFrame();
//...
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);


2

আমি এই সংস্করণটি পছন্দ করি:

import java.awt.Dimension;
import java.awt.GraphicsConfiguration;
import java.awt.Toolkit;
import javax.swing.JFrame;

public class Test
{
    public static void main(String [] args)
    {
        final JFrame frame = new JFrame();
        final GraphicsConfiguration config = frame.getGraphicsConfiguration();

        final int left = Toolkit.getDefaultToolkit().getScreenInsets(config).left;
        final int right = Toolkit.getDefaultToolkit().getScreenInsets(config).right;
        final int top = Toolkit.getDefaultToolkit().getScreenInsets(config).top;
        final int bottom = Toolkit.getDefaultToolkit().getScreenInsets(config).bottom;

        final Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        final int width = screenSize.width - left - right;
        final int height = screenSize.height - top - bottom;

        frame.setResizable(false);
        frame.setSize(width,height);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);       
        frame.setVisible(true);
    }
}

আমি এই সংস্করণটি ভালবাসি। তোমাকে অনেক ধন্যবাদ.
SWIIWII

2

জেফ্রেমকে পূর্ণ-স্ক্রিনে সেট করার উপায়টি হল এমন MAXIMIZED_BOTHবিকল্প সেট করা যা এর জন্য দাঁড়ায় MAXIMIZED_VERT | MAXIMIZED_HORIZ, যা যথাক্রমে ফ্রেমটিকে উল্লম্ব এবং অনুভূমিকভাবে সর্বাধিক আকারে সেট করে

package Example;
import java.awt.GraphicsConfiguration;
import javax.swing.JFrame;
import javax.swing.JButton;

public class JFrameExample
{
    static JFrame frame;
    static GraphicsConfiguration gc;
    public static void main(String[] args)
    {
        frame = new JFrame(gc);
        frame.setTitle("Full Screen Example");
        frame.setExtendedState(MAXIMIZED_BOTH);

        JButton button = new JButton("exit");
        b.addActionListener(new ActionListener(){@Override
        public void actionPerformed(ActionEvent arg0){
            JFrameExample.frame.dispose();
            System.exit(0);
        }});

        frame.add(button);
        frame.setVisible(true);
    }
}

2

আমি এই থ্রেডে এবং এখানে সমাধানগুলির সমাধানগুলি চেষ্টা করেছি , তবে কেবল কল করার setExtendedState(getExtendedState()|Frame.MAXIMIZED_BOTH);পরে ডান কল করা setVisible(true);আমার পরিবেশের পক্ষে কার্যকরভাবে কাজ করে না (উইন্ডোজ 10, জেডিকে 1.8, আমার টাস্কবারটি আমার পর্দার ডানদিকে রয়েছে)। এইভাবে এটি করা এখনও বাম, ডান এবং নীচে একটি ছোট জায়গা ছেড়ে।

আমার জন্য কী কাজ করেছে, setExtendedState(...উইন্ডোটি সক্রিয় হওয়ার পরে কল করছে :

public class SomeFrame extends JFrame {

    public SomeFrame() {
        // ...
        setVisible(true);
        setResizable(true);
        // if you are calling setSize() for fallback size, do that here
        addWindowListener (
            new WindowAdapter() {
                private boolean shown = false;
                @Override
                public void windowActivated(WindowEvent we) {
                    if(shown) return;
                    shown = true;
                    setExtendedState(getExtendedState()|JFrame.MAXIMIZED_BOTH);
                }
            }
        );
    }
}

4
উইন্ডোজ 10 এ স্ক্রিনের নীচে টাস্কবারের সাথে আমার একই রকম সমস্যা ছিল। উইন্ডোটি খুব বেশি ছিল এবং তাই টাস্কবার দ্বারা ওভারল্যাপ করা হয়েছিল। আপনার সমাধান কাজ করেছে!
সুবিধা

0

আমি এই কোডটি ব্যবহার করে শেষ করেছি:

public void setMaximized(boolean maximized){
    if(maximized){
        DisplayMode mode = this.getGraphicsConfiguration().getDevice().getDisplayMode();
        Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(this.getGraphicsConfiguration());
        this.setMaximizedBounds(new Rectangle(
                mode.getWidth() - insets.right - insets.left, 
                mode.getHeight() - insets.top - insets.bottom
        ));
        this.setExtendedState(this.getExtendedState() | JFrame.MAXIMIZED_BOTH);
    }else{
        this.setExtendedState(JFrame.NORMAL);
    }
}

এই বিকল্পগুলি একাধিক মনিটর সমর্থন সহ সমস্ত বিকল্পের মধ্যে সবচেয়ে ভাল কাজ করেছে। এর একমাত্র ত্রুটিটি হ'ল সমস্ত মনিটরে টাস্কবার অফসেটটি ব্যবহৃত হয় কিছু কনফিগারেশন।


0

@kgiannakakis উত্তর সম্পূর্ণরূপে সঠিক, কিন্তু যদি কেউ এই সমস্যার মধ্যে আটকে ও ব্যবহার করে জাভা 6 উপর লিনাক্স (উদাহরণস্বরূপ দ্বারা, মিন্ট 19 দারুচিনি), MAXIMIZED_BOTH রাষ্ট্র কখনও কখনও প্রয়োগ করা হয় না।

আপনি এই অবস্থাটি সেট করার পরে প্যাক () পদ্ধতিতে কল করার চেষ্টা করতে পারেন ।

কোড উদাহরণ:

public MainFrame() {
    setContentPane(contentPanel); //some JPanel is here
    setPreferredSize(new Dimension(1200, 800));
    setMinimumSize(new Dimension(1200, 800));
    setSize(new Dimension(1200, 800));
    setExtendedState(JFrame.MAXIMIZED_BOTH);
    pack();
}

আপনি উইন্ডোতে জাভা 7+ বা জাভা 6 ব্যবহার করছেন তবে এটি প্রয়োজনীয় নয়।

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