2012-11-22 152 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也許他想顯示一個錯誤或一個提示,所以他只是鍵入一個例外。他可能還沒有完善的條款。雖然我不確定。 –