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



我正在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);

我想在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);

聊天后编辑;

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

如果没有整个项目,我就无法对代码做更多的事情:)

之前的答案;作为另一种选择,您可以使用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
    }
}

在initComponent()函数之后放入你的构造函数

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

相关内容

  • 没有找到相关文章

最新更新