Событие изменения окна?
Ответ 1
Реализуйте ComponentAdapter
с помощью componentResized()
:
frame.addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent componentEvent) {
// do stuff
}
});
Ответ 2
Переопределение определенных методов ComponentAdapter
является удобной альтернативой реализации всех методов ComponentListener
.
Ответ 3
Вы должны использовать componentResized
из 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());
}
});