Java how to make JFrames maximised but not resizable

前端 未结 4 1728
小蘑菇
小蘑菇 2021-01-13 07:35

Originally (See my previous question \"Java how to make JFrames start off as a maximised window\") I wanted to make a window which starts out maximised. This code accomplish

4条回答
  •  醉话见心
    2021-01-13 08:04

    I have kind of a hack for you that might work. Try this code (it worked for me):

    public static void main(String[] args) {
    
        final JFrame frame = new JFrame("Jedia");
        frame.setMinimumSize(new Dimension(600, 400));
        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        frame.setVisible(true);
    
        frame.addComponentListener(new ComponentListener(){
    
            @Override
            public void componentHidden(ComponentEvent e) {
                // TODO Auto-generated method stub
    
            }
    
            @Override
            public void componentMoved(ComponentEvent e) {
                // TODO Auto-generated method stub
    
            }
    
            @Override
            public void componentResized(ComponentEvent e) {
    
                if (!e.paramString().startsWith("COMPONENT_RESIZED (-8,-8"))
                frame.setSize(new Dimension(600, 400));
            }
    
            @Override
            public void componentShown(ComponentEvent e) {
                // TODO Auto-generated method stub
    
            }
        }); 
    }
    

    e.paramString() returns a String that looks like "COMPONENT_RESIZED (-8,-8, [screensize])" when a restore action takes place.

提交回复
热议问题