检测JFrame调整大小

时间:2015-11-01 05:59:53

标签: java swing jframe

我使用JFrame,我想,只要用户从原始大小(400x300)调整大小并且width达到某个值,就可以做一些事情,让我们来电话这是一个打印命令。我用:

import javax.swing.JFrame;

public class DC extends JFrame {
    public DC() {
        setSize(400, 300);
        setVisible(true);
        if (getWidth() >= 1000) System.out.print("Thousand");
    }

    public static void main(String[] args) {
        DC dc = new DC();
        dc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

这有效,但仅限于我从一开始就setSize(1000, 300),而不是在用户调整框架大小时。我知道要摇摆这样,我认为这不是解决这个问题的方法。我应该在哪里解决这个问题? TY

1 个答案:

答案 0 :(得分:2)

您的新修改代码(只要窗口宽度大于等于1000就会打印出数千个) ----

import java.awt.Component; //import these 3 header files
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;

import javax.swing.JFrame;

public class DC extends JFrame {
    public DC() {
        setSize(400, 300);
        setVisible(true);
       // if (getWidth() >= 1000) System.out.print("Thousand");
        addComponentListener(new ComponentAdapter() 
        {  
                public void componentResized(ComponentEvent evt) {
                    Component c = (Component)evt.getSource();
                    if(c.getWidth()>=1000) //This will print Thousand
                    {
                    System.out.println("Thousand");
                    }
                }
        });
    }


    public static void main(String[] args) {
        DC dc = new DC();
        dc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}