2015-05-21 3 views
1

Я пытаюсь изменить размер JFrame вручную, перетащив 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 - фактическая высота и ширина.

+0

рассмотреть возможность предоставления [работоспособной пример] (https://stackoverflow.com/help/mcve), который демонстрирует вашу проблему. Это не дамп кода, а пример того, что вы делаете, что подчеркивает проблему, с которой вы сталкиваетесь. Это приведет к меньшему путанице и лучшим ответам – MadProgrammer

ответ

0

Это для маленьких информаций, но, возможно, вам нужно, чтобы изменить расчет размера для:

newwidth = this.getWidth() + xMoved; 

    newheight = this.getHeight() + yMoved; 

также расчет размера ход должен выглядеть следующим образом:

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

У меня он был установлен на this.get высоту и ширину изначально. Но он, казалось, продолжал цикл каждый раз, когда я тащил мышь. Поэтому я имею в виду, что размер был очень быстрым и не останавливался, когда я остановил перетаскивание. Может ли быть проблема с вычислением расстояния от перетаскивания? – user2775042

+0

Как вы обычно вычисляете расстояние перемещения мыши, чтобы увеличить размер экрана? – user2775042

Смежные вопросы