我正在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);
答案 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
扩展到全屏。
以完整尺寸显示框架,并将其设为显示登录详细信息的模式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 :(得分:1)
在initComponent()函数之后放入构造函数中一个简单的代码
initComponents();/*Function automated*/
setMinimumSize(new Dimension(700,400).getSize());
setExtendedState(MAXIMIZED_BOTH);/*To see your application starts maximized!*/