如何在未修饰的状态下调整JDialog的大小?

时间:2012-08-31 04:33:22

标签: java swing jdialog

我想知道在设置setUndecorated(true);时如何使JDialog可调整大小。可以通过外框进行调整大小。当它未修饰时,没有框架,然后JDialog无法调整大小。如何在外框不可用时调整JDialog的大小?

2 个答案:

答案 0 :(得分:2)

我认为你的意思是用户如何调整未修饰的对话框(因为开发人员总是可以调用setSize

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

这需要实施MouseListener并监控mousePressedmouseReleasedmouseDragged事件

您需要考虑到您可能只希望在触发调整大小的对话框周围设置装订线(例如5像素)。重要的是,这个装订线中没有其他组件,因为它们会覆盖您的鼠标监听器。

答案 1 :(得分:2)

没有对此进行测试,但从我收集到的内容看来,您只需要以下方法:

// 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();
}
}

参考: http://tech.groups.yahoo.com/group/JPGroup/message/1877