デスクトップアプリケーションでのJFrameのサイズ変更 - NetBeans

私はNetBeans IDEでJava Desktop Applicationを開発しています。 JFrame にログイン画面を小さなサイズで表示したいと思います。それから、ログインした後、私は JFrame を他のパネルでフルスクリーンに拡張したいと思います。問題は一度正しく表示され、次回からフルスクリーンでログイン画面を表示していました。それ?私は同じフレームに異なるパネルを配置しています。

ログイン中

this.getFrame().setExtendedState(Frame.NORMAL);
this.getFrame().setSize(360, 233);
this.getFrame().setResizable(false);

ログイン後

this.getFrame()。setExtendedState(Frame.MAXIMIZED_BOTH);

1
私はメインのJFrameを使って、サイズの異なる新しいjpanelを配置するログインの詳細を表示しています。最初はログインフォームサイズのJFrameを設計しました。
追加された 著者 Mukthi,
ログイン画面を表示したときにサイズを変更しますか? JFrame 200x200 と言うサイズで表示し、その JFrame を使って他のものを表示し、サイズを変更します全画面表示。これで、ログインを同じ JFrame に表示すると、 200x200 にサイズを変更することができます。 resize()が機能しない場合は、サイズを変更する前に setExtendedState(Frame.NORMAL)を呼び出す必要があります
追加された 著者 PeterT,

3 答え

小さいサイズのログイン画面を JFrame に表示したいと思います。ログイン後、 JFrame を他のパネルの全画面に拡張したいと考えています。

フレームをフルサイズで表示し、ログインの詳細を示すモーダル JDialog または JOptionPane の所有者にします。ログインに失敗し、ユーザーが再試行するのではなくキャンセルする場合は、アプリを終了します。

ログイン用に新しい JDialog を設計したら、最初にどのように表示できますか?

JFrame f = this.getFrame();
JDialog loginDialog = new JDialog(f,"Login",true);
loginDialog.add(loginPanel);  
loginDialog.pack();
f.setExtendedState(Frame.MAXIMIZED_BOTH)
f.setVisible(true);
loginDialog.setLocationRelativeTo(f);
loginDialog.setVisible(true);
2
追加された
私はNetBeans Java Desktop Applicationで開発しています。ログイン用の新しいJDialogを設計したら、どうすれば最初に表示できますか?
追加された 著者 Mukthi,
ログインユーザー名とパスワードがOKの場合は、どうすればログインパネルからメインフレームを見えるようにできますか?
追加された 著者 Mukthi,
編集を参照してください...
追加された 著者 Andrew Thompson,
私が言ったように、Jdialogはこのケースでもっと役に立ちます。
追加された 著者 Yusuf K.,

チャット後に編集する。

シナリオに従ってください。外部デスクトップアプリケーションの保持、覚えている   フレームサイズを最後に設定します。内側のパネルは外部になければなりません   メインフレームをデスクトップアプリケーションから開き、サイズと場所の設定を設定します   内部コードの実行後にアプリケーションを実行した後。

私がコード全体について行うことができないことはもうありません:)

以前の回答。 代わりに、あなたはJDialogを使ってログインすることができます そうでなければ次回はログイン画面を表示し、全画面を設定するときは逆にします。

いくつかのコードサンプルは、あなたの質問によく答えるのに役立ちます。

編集2: 彼は次回にログイン画面を使いました。

this.getFrame().setExtendedState(Frame.NORMAL);

編集3:コードサンプル

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JFrame;


public class MyFrame extends JFrame implements MouseListener {

    /**
     * @param args
     */
    public static void main(String[] args) {

        MyFrame frame = new MyFrame();
        frame.setVisible(true);
        frame.setSize(200, 200);
        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        frame.addMouseListener(frame);
    }

    @Override
    public void mouseClicked(MouseEvent e) {
        if(this.getExtendedState() == JFrame.MAXIMIZED_BOTH){
            this.setExtendedState(JFrame.NORMAL);
        }
        else{
            this.setExtendedState(JFrame.MAXIMIZED_BOTH);
        }
    }

    @Override
    public void mousePressed(MouseEvent e) {

    }

    @Override
    public void mouseReleased(MouseEvent e) {

    }

    @Override
    public void mouseEntered(MouseEvent e) {
       //TODO Auto-generated method stub

    }

    @Override
    public void mouseExited(MouseEvent e) {
       //TODO Auto-generated method stub

    }

}
2
追加された
私はやっているコードを追加しました
追加された 著者 Mukthi,
私もこれを試しました。しかし、ログイン後、私はjframeをフルスクリーンにしません。
追加された 著者 Mukthi,
ya ...しかし、ログイン後にJframesパネルを置き換えてしまったのですが、それは簡単になりますか?
追加された 著者 Mukthi,
私は答えを編集していた
追加された 著者 Yusuf K.,
あなたは新しい設定であなたのフレームを隠して表示しようとしましたか?
追加された 著者 Yusuf K.,
私は私の答えで上記のサンプルコードに問題はありません。フレームをクリックするたびに、フレームの最大サイズと通常サイズが切り替わります
追加された 著者 Yusuf K.,
追加された 著者 Yusuf K.,

あなたのコンストラクタに、initComponent()関数の後に単純なピースのコードを入れてください

initComponents();/*Function automated*/
setMinimumSize(new Dimension(700,400).getSize());
setExtendedState(MAXIMIZED_BOTH);/*To see your application starts maximized!*/
1
追加された