Java 当JDialog处于未装饰状态时,如何调整其大小?

Java 当JDialog处于未装饰状态时,如何调整其大小?,java,swing,jdialog,Java,Swing,Jdialog,我想知道当JDialog被设置为setUndecorated(true)时,如何使其大小可调。调整大小可以由外部框架完成。当外部框架未装饰时,没有框架,则无法调整JDialog的大小。当JDialog的外部框架不可用时,如何调整其大小?我想你的意思是,用户如何调整未修饰对话框的大小(作为开发人员,您可以随时调用setSize) 这样做的唯一方法是自己实现逻辑 这将需要实现一个鼠标侦听器,并监控鼠标按下、鼠标释放和鼠标标记事件 您需要考虑的是,您可能只需要在对话框周围设置一个空格,以触发调整大小(

我想知道当JDialog被设置为
setUndecorated(true)时,如何使其大小可调。调整大小可以由外部框架完成。当外部框架未装饰时,没有框架,则无法调整JDialog的大小。当JDialog的外部框架不可用时,如何调整其大小?

我想你的意思是,用户如何调整未修饰对话框的大小(作为开发人员,您可以随时调用
setSize

这样做的唯一方法是自己实现逻辑

这将需要实现一个
鼠标侦听器
,并监控
鼠标按下
鼠标释放
鼠标标记
事件


您需要考虑的是,您可能只需要在对话框周围设置一个空格,以触发调整大小(例如5像素)。重要的是,此槽中没有其他组件,因为它们将覆盖您的鼠标侦听器。

我想您的意思是,用户如何调整未装饰对话框的大小(作为开发人员,您可以随时调用
setSize

这样做的唯一方法是自己实现逻辑

这将需要实现一个
鼠标侦听器
,并监控
鼠标按下
鼠标释放
鼠标标记
事件


您需要考虑的是,您可能只需要在对话框周围设置一个空格,以触发调整大小(例如5像素)。重要的是,此槽中没有其他组件,因为它们将覆盖您的鼠标侦听器。

尚未对此进行测试,但从我收集的信息来看,您似乎只需要以下方法:

// window reszie event
private void _setUpWindowResizeEvent() {
this.addMouseMotionListener(
new MouseMotionListener() {

public void mouseDragged(MouseEvent mouseEvent) {
if( mHozResizeEnabled || mVerResizeEnabled ) {
int x = mouseEvent.getX();
int y = mouseEvent.getY();
_resizeWindow(
MouseInfo.getPointerInfo().getLocation() );
sticky.setSize( getSize() );
_fireStickyUpdated();
}
}
参考:

尚未对此进行测试,但从我收集的信息来看,您似乎只需要以下方法:

// window reszie event
private void _setUpWindowResizeEvent() {
this.addMouseMotionListener(
new MouseMotionListener() {

public void mouseDragged(MouseEvent mouseEvent) {
if( mHozResizeEnabled || mVerResizeEnabled ) {
int x = mouseEvent.getX();
int y = mouseEvent.getY();
_resizeWindow(
MouseInfo.getPointerInfo().getLocation() );
sticky.setSize( getSize() );
_fireStickyUpdated();
}
}
参考:

为什么用户甚至会尝试调整未装饰的浮动窗口的大小?鉴于它们通常不可调整大小,除非出现大的、红色的、闪烁的文本,大意是“可以更改我的大小!”,否则它们可能永远不会出现这种情况。我认为这个GUI比“如何”有更大的问题。@AndrewThompson,谢谢你的关注。这里使用不装饰是因为我想给人一种别致的感觉,让角落变得更圆,所以没有什么理由。。。但是用户仍然应该能够调整JDialogA代码snipt的大小,这提供了一个解决方案,为什么用户甚至会尝试调整未装饰的浮动窗口的大小?鉴于它们通常不可调整大小,除非出现大的、红色的、闪烁的文本,大意是“可以更改我的大小!”,否则它们可能永远不会出现这种情况。我认为这个GUI比“如何”有更大的问题。@AndrewThompson,谢谢你的关注。这里使用不装饰是因为我想给人一种别致的感觉,让角落变得更圆,所以没有什么理由。。。但是用户仍然应该能够调整JDialogA代码snipt的大小,这提供了一个解决方案,非常感谢。我发现了一个代码剪报,你的意思也是。非常感谢。我发现了一个代码剪报,你的意思也是。