【问题标题】:swing - changing the maximize button behaviorswing - 改变最大化按钮的行为
【发布时间】:2010-11-10 10:05:30
【问题描述】:


我正在尝试替换(摆动)屏幕中的最大化按钮。
我希望我的框架将其大小更改为我对最大尺寸和最小尺寸的定义,
没有窗口移动它的位置。
我尝试了以下(并遇到了所有问题)
1.Frame.setMaximumSize,Frame.setMinimumSize。实际上什么也没做。

2. tableFrame.addWindowStateListener(new WindowStateListener() {
public void windowStateChanged(WindowEvent e) {
然后我调整了窗口的大小
实际上在管理尺寸方面做得很好 - 只是它每次点击都会将屏幕跳到右上角。 (我只需要在最大化时调整窗口大小)

3. 显然在 componentResized 上添加窗口侦听器并不能完成这项工作,因为当我将尺寸更改为我想要的尺寸时 - 它会进入无限循环。

非常感谢

【问题讨论】:

    标签: swing


    【解决方案1】:

    我想你在找Frame#setMaximizedBounds():http://download.oracle.com/javase/6/docs/api/java/awt/Frame.html

    【讨论】:

    • 您好,感谢您的回复。这将设置正确的大小,但它会将屏幕跳转到左上角。
    • 如何让屏幕保持在原来的 x.y 位置?
    • 请注意,Rectangle(作为 setMaximizedBounds 的参数)允许您将左上角设置为您想要的任何值。如果你想把它放在同一个xy位置,首先从Frame#getMaximizedBounds()#x和y中获取当前xy位置,然后将它们设置为你给setMaximizedBounds()的Rectangle中的角。
    • 对不起,几乎......现在它只记得屏幕的初始位置。如果我移动它,它就会跳回来。到原来的地方。我最后的手段是跟随窗口移动侦听器(或类似的侦听器)并保留它的静态成员
    • 任何更好的主意。 (对不起不同的cmets。按Enter是一种习惯)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 2015-10-16
    相关资源
    最近更新 更多