Java 如何手动调整JFrame的大小?

Java 如何手动调整JFrame的大小?,java,swing,user-interface,Java,Swing,User Interface,我试图通过拖动JPanel手动调整JFrame的大小。这就是我所做的。目前它可以工作,但屏幕仍然闪烁,并且大小调整不正确 我希望它发生的是,当我点击Jpanel并拖动它时,JFrame应该自动调整大小到X坐标和Y坐标所在的位置 public void mouseDragged(MouseEvent e) { // Sets width, height and moved X and Y coordinates int currentwidth = this.getWi

我试图通过拖动JPanel手动调整JFrame的大小。这就是我所做的。目前它可以工作,但屏幕仍然闪烁,并且大小调整不正确

我希望它发生的是,当我点击Jpanel并拖动它时,JFrame应该自动调整大小到X坐标和Y坐标所在的位置

     public void mouseDragged(MouseEvent e) {

    // Sets width, height and moved X and Y coordinates
    int currentwidth = this.getWidth();
    int currentheight = this.getHeight();
    int newwidth = 0;
    int newheight = 0 ;

    int thisX = this.getX();
    int thisY = this.getY();

    // Calculates the moving distance
    int xMoved = (thisX + e.getX()) - (thisX + initialClick.x);
    int yMoved = (thisY + e.getY()) - (thisY + initialClick.y);



    // Checks which component the mouse is clicked on
    if(e.getComponent() == reszingbit){

        // Calculates the new height and width
        newwidth = 200 + xMoved;

        newheight = 200 + yMoved;

        // Making sure that the new height and width is not less than actual size
        if(newwidth >= 200 && newheight >= 200){
            this.setSize(newwidth,newheight);
        }
    }

200是实际高度和宽度。

信息很少,但您可能需要将尺寸计算更改为:

    newwidth = this.getWidth() + xMoved;

    newheight =  this.getHeight() + yMoved;
此外,移动大小计算应如下所示:

    int xMoved =  e.getX() - initialClick.x;
    int yMoved =  e.getY() - initialClick.y;

考虑提供一个说明你的问题的方法。这不是一个代码转储,而是您正在做的一个示例,它突出了您所遇到的问题。这将减少混乱和更好的响应。我已将其设置为此。最初获取高度和宽度。但每次我拖动鼠标时,它似乎都在循环。所以我的意思是,当我停止拖动时,尺寸增加的非常快,并且没有停止。计算拖动距离可能有问题吗?您通常如何计算移动鼠标以增加屏幕大小的距离?