阻止jframe调整大小的异常

时间:2012-11-22 10:53:53

标签: java exception jframe

我试图创建一个异常,抛出对话框并阻止用户调整任何小于(250,350)的jframe,但我没有运气这样做。

所以我的问题是,如果我有一个Jframe窗格,其设置大小为800,500。我是否可以创建一个例外,当用户尝试使jframe小于某个大小时,它会停止它们在那个大小,并显示一条错误消息?

2 个答案:

答案 0 :(得分:1)

不要创建例外。创建一个动作侦听器,当用户将窗口大小调整为小于(250,350)的任何大小时,以JOptionPane对话框的形式抛出错误消息

以下是您正在运行的代码,Enjoy!

    import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.Timer;

public class Resize {

    Resize(){


    final JFrame frame = new JFrame();
    frame.setBounds(100, 50, 500, 500);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(null);
    frame.getContentPane().setBackground(Color.white);


    frame.setVisible(true);
    ActionListener al = new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            if(frame.getSize().width <250 || frame.getSize().height <350)
            {
                JOptionPane.showMessageDialog(null, "Size cannot be smaller than 250,350"); 
                frame.setSize(500, 500);
            }
        }
    };

    Timer t = new Timer(1000, al);
    t.start();

    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new Resize();
    }

}

答案 1 :(得分:0)

使用jFrame.setMinimumSize(new Dimension(250, 350));然后,用户无法使JFrame小于此值。