Java 检测JFrame调整大小
我使用一个Java 检测JFrame调整大小,java,swing,jframe,Java,Swing,Jframe,我使用一个JFrame,当用户从原始大小(400x300)调整它的大小并且width达到某个值时,我想使用它来做一些事情,让我们在这里称它为print命令。我使用: import javax.swing.JFrame; public class DC extends JFrame { public DC() { setSize(400, 300); setVisible(true); if (getWidth() >= 1000)
JFrame
,当用户从原始大小(400x300)调整它的大小并且width
达到某个值时,我想使用它来做一些事情,让我们在这里称它为print命令。我使用:
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);
}
}
这是可行的,但仅当我从一开始就设置大小(1000300)时有效,而当用户调整帧大小时无效。我知道我会荡秋千,我认为这不是解决问题的方法。我应该在哪里解决这个问题?Ty您新修改的代码(窗口宽度大于等于1000时,将立即打印千个)--
您新修改的代码(当窗口宽度大于等于1000时,将打印1000个)--
你应该可以给我们一个ComponentListener“。让我们在这里称之为打印命令”不,让我们称之为它实际是什么。看,你应该能够给我们一个ComponentListener“。让我们在这里称之为打印命令”不,让我们称之为它实际上是什么。看见
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);
}
}