在桌面应用程序中调整JFrame大小 - NetBeans

时间:2011-11-25 06:37:53

标签: java swing user-interface netbeans jframe

我正在NetBeans IDE中开发Java桌面应用程序。我想在JFrame中显示小尺寸的登录屏幕。然后在登录后我想将JFrame扩展到全屏与其他面板。问题是它正常显示,并从下次用于显示全屏登录屏幕。我怎么能避免它?我在同一帧上放置不同的面板。

登录时

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

登录后

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

3 个答案:

答案 0 :(得分:2)

聊天后编辑;

  

根据情景;外部桌面应用程序保持,记住和   将帧大小设置为上次设置。所以内部面板必须外部   桌面应用程序的主框架和设置大小和位置设置   在内部代码运行后运行应用程序后。

如果没有完整的项目,我就无法再对代码做些什么了。)

以前的答案; 或者,您可以使用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

    }

}

答案 1 :(得分:2)

  

我想在JFrame中显示小尺寸的登录界面。然后在登录后我想用其他面板将JFrame扩展到全屏。

以完整尺寸显示框架,并将其设为显示登录详细信息的模式JDialogJOptionPane的所有者。如果登录失败并且用户选择取消而不是再次尝试,请退出应用程序。

  

如果我为登录设计了一个新的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 :(得分:1)

在initComponent()函数之后放入构造函数中一个简单的代码

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