Подтвердить что ты не робот

Событие изменения окна?

Я пишу простую программу рисования с использованием java, и я хочу, чтобы какой-то метод вызывался всякий раз, когда был изменен размер компонента JFrame. Но я не могу найти такой метод, как windowResizedListener или событие, подобное windowResizedEvent. что я могу сделать?!
4b9b3361

Ответ 1

Реализуйте ComponentAdapter с помощью componentResized():

frame.addComponentListener(new ComponentAdapter() {
    public void componentResized(ComponentEvent componentEvent) {
        // do stuff
    }
});

Ответ 2

Переопределение определенных методов ComponentAdapter является удобной альтернативой реализации всех методов ComponentListener.

Ответ 4

Чтобы получить доступ к событию метода переопределения окна, я использовал компонент ComponentListener внутри подкласса. Это настраиваемый класс JPanel, который вы можете использовать для записи размера окна в JLabel внутри графического интерфейса. Просто реализуйте этот класс в своем основном методе и добавьте его в свой JFrame, и вы можете изменить размер окна, и он будет динамически показывать размер пикселя вашего окна. (Обратите внимание, что вы должны добавить свой объект JFrame к классу)

package EventHandledClasses;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ComponentListener;
public class DisplayWindowWidth extends JPanel{
JLabel display;
JFrame frame;
public DisplayWindowWidth(JFrame frame){
        display = new JLabel("---");
        this.frame = frame;

        frame.addComponentListener(new FrameListen());
        add(display);
        setBackground(Color.white);
    }

    private class FrameListen implements ComponentListener{
        public void componentHidden(ComponentEvent arg0) {
        }
        public void componentMoved(ComponentEvent arg0) {   
        }
        public void componentResized(ComponentEvent arg0) {
            String message = " Width: " +
            Integer.toString(frame.getWidth());
            display.setText(message);

        }
        public void componentShown(ComponentEvent arg0) {

        }
    }
}

Ответ 5

Пример с ComponentAdapter

//Detect windows changes
window.addComponentListener(new ComponentAdapter( ) {
  public void componentResized(ComponentEvent ev) {
   label.setText(ev.toString());
  }
});