这是代码:
ScreenHeight = Toolkit.getDefaultToolkit().getScreenSize().height,
ScreenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;
JFrame MainFrame = new JFrame();
MainFrame.setSize(ScreenWidth, ScreenHeight);
MainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MainFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
MainFrame.setVisible(true);
/* When set to false, all buttons and boxes are displayed,
otherwise only the main window appears */
MainFrame.setUndecorated(true);
Container Pane = Frame.getContentPane();
Pane.setLayout(new MigLayout());
initLoginPanel(Pane);
布置控件的功能:
private void initLoginPanel(Container Obj)
{
JPanel LoginContainer = new JPanel();
LoginContainer.setLayout(new MigLayout());
Obj.add(LoginContainer, "pos 0.5al 0.5al");
JLabel uNameLabel = new JLabel("Username");
JTextField uNameBox = new JTextField();
JLabel uPassLabel = new JLabel("Password");
JTextField uPassBox = new JTextField();
JButton LoginButton = new JButton("Login", 90, 26);
LoginContainer.add(uNameLabel, "wrap");
LoginContainer.add(uNameBox, "span");
LoginContainer.add(uPassLabel, "wrap");
LoginContainer.add(uPassBox, "span");
LoginContainer.add(LoginButton, "");
}
如果在上面的代码中使用了MainFrame.setUndecorated(false)
,它可以正常工作但没有全屏。这就是标题栏,关闭,最小化和最大化按钮显示。
问题: 1.如何使组件在全屏模式下工作。
答案 0 :(得分:1)
有两个问题:
setVisible
的位置
显示框架必须是最后一步;
首先,你必须设置你的框架并添加他的内容。 拨打initLoginPanel
的电话
你的代码做错了。为什么不直接将组件添加到框架中?即。
initLoginPanel( YourJFrame );
修正后的简化代码:
JFrame frame = new JFrame("Main window");
frame.setSize( Toolkit.getDefaultToolkit().getScreenSize() );
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setUndecorated(false);
initLoginPanel(frame);
frame.setVisible(true); //FINALLY show the JFrame!