java Swing设计的窗口如何禁止缩小,而不禁止放大呢?注:不想用setResizable(false)这样也不能放大了。求帮忙。看到网上说,代码里的两种方法管用?但并不管用

package testSwing;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;

public class testMenuBar extends JFrame {

    public testMenuBar(){
        setSize(600,500);
        //方法1
        setMinimumSize(new Dimension(600,500));
        setLocationRelativeTo(null);
        setDefaultCloseOperation(3);
        setLayout(new FlowLayout(FlowLayout.CENTER));
        JMenuItem item1=new JMenuItem("打开文件");
        JMenuItem item2=new JMenuItem("新建文件");
        JMenu menu1=new JMenu("文件");
        menu1.add(item1);
        menu1.add(item2);
        JMenuItem item3=new JMenuItem("清除数据");
        JMenuItem item4=new JMenuItem("保存数据");
        JMenu menu2=new JMenu("数据");
        menu2.add(item3);
        menu2.add(item4);
        JMenuBar menuBar=new JMenuBar();
        menuBar.add(menu1);
        menuBar.add(menu2);
        setJMenuBar(menuBar);
        //方法2
        addComponentListener(new ComponentAdapter() {
            @Override
            public void componentResized(ComponentEvent e) {
                int width = getWidth();
                int height = getHeight();

                // 检查宽度或高度是否小于最小尺寸
                if (width < 600 || height < 500) {
                    setSize(Math.max(width, 600), Math.max(height, 500));
                }
            }
        });
        setVisible(true);
    }

    public static void main(String[] args){
        new testMenuBar();

    }
}
讨论数量: 1
pardon110

代码如下,确保不小于初始窗口

import javax.swing.*;
import java.awt.*;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;

public class TestMenuBar extends JFrame {

    public TestMenuBar() {
        setSize(600, 500);
        setMinimumSize(getSize()); // 禁止缩小窗口大小
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new FlowLayout(FlowLayout.CENTER));

        JMenuItem item1 = new JMenuItem("打开文件");
        JMenuItem item2 = new JMenuItem("新建文件");
        JMenu menu1 = new JMenu("文件");
        menu1.add(item1);
        menu1.add(item2);
        JMenuItem item3 = new JMenuItem("清除数据");
        JMenuItem item4 = new JMenuItem("保存数据");
        JMenu menu2 = new JMenu("数据");
        menu2.add(item3);
        menu2.add(item4);
        JMenuBar menuBar = new JMenuBar();
        menuBar.add(menu1);
        menuBar.add(menu2);
        setJMenuBar(menuBar);

        addComponentListener(new ComponentAdapter() {
            @Override
            public void componentResized(ComponentEvent e) {
                int width = getWidth();
                int height = getHeight();

                // 检查宽度或高度是否小于初始尺寸
                if (width < 600) {
                    setSize(600, height);
                }
                if (height < 500) {
                    setSize(width, 500);
                }
            }
        });

        setVisible(true);
    }

    public static void main(String[] args) {
        new TestMenuBar();
    }
}
9个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!