added JExtendedInternalFrame
parent
39c548a13f
commit
03f1363ec9
|
@ -0,0 +1,109 @@
|
|||
package org.hwo.ui;
|
||||
|
||||
import javax.swing.JInternalFrame;
|
||||
|
||||
import java.awt.Component;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.event.ComponentAdapter;
|
||||
import java.awt.event.ComponentEvent;
|
||||
|
||||
public class JExtendedInternalFrame extends JInternalFrame
|
||||
{
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
private boolean keepInDesktopPane;
|
||||
|
||||
|
||||
public JExtendedInternalFrame() {
|
||||
this.putClientProperty("JInternalFrame.frameType", "normal");
|
||||
|
||||
addComponentListener(new ComponentAdapter() {
|
||||
@Override
|
||||
public void componentMoved(ComponentEvent e) {
|
||||
Component dp = getParent();
|
||||
|
||||
Dimension dpr = dp.getSize();
|
||||
Rectangle b = getBounds();
|
||||
boolean reset = false;
|
||||
|
||||
if (b.x < 0) {
|
||||
reset = true;
|
||||
b.x = 0;
|
||||
}
|
||||
if (b.y < 0) {
|
||||
reset = true;
|
||||
b.y = 0;
|
||||
}
|
||||
|
||||
if (b.x + b.width > dpr.width) {
|
||||
b.x = dpr.width - b.width;
|
||||
reset = true;
|
||||
}
|
||||
|
||||
if (b.y + b.height > dpr.height){
|
||||
b.y = dpr.height - b.height;
|
||||
reset = true;
|
||||
}
|
||||
|
||||
if (reset) {
|
||||
setBounds(b);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
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 (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);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public boolean isKeepInDesktopPane() {
|
||||
return keepInDesktopPane;
|
||||
}
|
||||
|
||||
public void setKeepInDesktopPane(boolean keepInDesktopPane) {
|
||||
this.keepInDesktopPane = keepInDesktopPane;
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue