2012-11-22 65 views
-1

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

所以我的问题是,如果我有一个Jframe窗格的设置大小800,500.我可以创建一个异常,当用户试图使jframe小于一定的大小时,它停止在这个大小并显示一条错误消息?

+1

不要这样做,例外,这是愚蠢的。有摆动的现有功能,您可以设置一个最小尺寸,而不发明一些头发异常来控制程序流程。 – Qwerky

+0

@steven它是一个方便的提示,让你在SO上取得成功:在发布问题后,接受答案或要求更多答案。谢谢 –

回答

1

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

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(); 
    } 

} 
+0

如果你不太忙,我很乐意为你添加代码,谢谢 – steven

+0

@steven希望这能为你解决问题:) –

0

使用jFrame.setMinimumSize(new Dimension(250, 350));然后,用户没有机会使JFrame任何比这更小。

+0

我知道,但我被告知我需要使用somesort的例外 – steven

+2

@steven whoever告诉你使用异常是错误的。这是功课吗? – Qwerky

+1

@Qwerky也许他想显示一个错误或一个提示,所以他只是键入一个例外。他可能还没有完善的条款。虽然我不确定。 –