From 6b3694314486987dc94d72f96839e7abcfad2a56 Mon Sep 17 00:00:00 2001 From: Harald Wolff Date: Wed, 7 Feb 2018 10:55:10 +0100 Subject: [PATCH] JExtendedInternalFrame: fix resize behaviour --- src/org/hwo/ui/JExtendedInternalFrame.java | 57 ++++++++++++---------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/src/org/hwo/ui/JExtendedInternalFrame.java b/src/org/hwo/ui/JExtendedInternalFrame.java index 67ebe87..c2b88c1 100644 --- a/src/org/hwo/ui/JExtendedInternalFrame.java +++ b/src/org/hwo/ui/JExtendedInternalFrame.java @@ -54,34 +54,37 @@ public class JExtendedInternalFrame extends JInternalFrame public void componentResized(ComponentEvent e) { Component dp = getParent(); - Dimension dpr = dp.getSize(); - Rectangle b = getBounds(); - boolean reset = false; - - if (b.x < 0) { - reset = true; - b.width += b.x; - b.x = 0; + if(dp != null) { + Dimension dpr = dp.getSize(); + Rectangle b = getBounds(); + boolean reset = false; + + if (b.x < 0) { + reset = true; + b.width += b.x; + b.x = 0; + } + if (b.y < 0) { + reset = true; + b.height += b.y; + b.y = 0; + } + + if (b.x + b.width > dpr.width) { + b.width = dpr.width - b.x; + reset = true; + } + + if (b.y + b.height > dpr.height){ + b.height = dpr.height - b.y; + reset = true; + } + + if (reset) { + setBounds(b); + } } - if (b.y < 0) { - reset = true; - b.height += b.y; - b.y = 0; - } - - if (b.x + b.width > dpr.width) { - b.width = dpr.width - b.x; - reset = true; - } - - if (b.y + b.height > dpr.height){ - b.height = dpr.height - b.y; - reset = true; - } - - if (reset) { - setBounds(b); - } + } });