我試圖創建一個異常,拋出對話框並停止用戶調整任何小於(250,350)的jframe的大小,但我沒有這樣做的運氣。異常停止jframe從調整大小
所以我的問題是,如果我有一個Jframe
窗格的設置大小800,500.我可以創建一個異常,當用戶試圖使jframe小於一定的大小時,它停止在這個大小並顯示一條錯誤消息?
我試圖創建一個異常,拋出對話框並停止用戶調整任何小於(250,350)的jframe的大小,但我沒有這樣做的運氣。異常停止jframe從調整大小
所以我的問題是,如果我有一個Jframe
窗格的設置大小800,500.我可以創建一個異常,當用戶試圖使jframe小於一定的大小時,它停止在這個大小並顯示一條錯誤消息?
請勿創建例外。當用戶將窗口大小調整爲小於(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();
}
}
如果你不太忙,我很樂意爲你添加代碼,謝謝 – steven
@steven希望這能爲你解決問題:) –
不要這樣做,例外,這是愚蠢的。有擺動的現有功能,您可以設置一個最小尺寸,而不發明一些頭髮異常來控制程序流程。 – Qwerky
@steven它是一個方便的提示,讓你在SO上取得成功:在發佈問題後,接受答案或要求更多答案。謝謝 –