Java 如何使JFrame四处移动?

Java 如何使JFrame四处移动?,java,swing,timer,jframe,move,Java,Swing,Timer,Jframe,Move,我有一个带按钮的JFrame。点击按钮,第二帧在固定位置打开,计时器启动。计时器递增一个变量x。现在我想通过添加x的值来移动第二帧。它应该能帮助我理解JAVA中的可能性以及它是如何工作的。谢谢你的努力。这是代码 ///////////////////////////////////// THE MAIN CLASS public class Main { public static void main (String[]args) { FrameOne

我有一个带按钮的JFrame。点击按钮,第二帧在固定位置打开,计时器启动。计时器递增一个变量x。现在我想通过添加x的值来移动第二帧。它应该能帮助我理解JAVA中的可能性以及它是如何工作的。谢谢你的努力。这是代码

/////////////////////////////////////    THE MAIN CLASS      


public class Main {

    public static void main (String[]args) {

    FrameOne frameOne = new FrameOne(); }}


你应该使用一个。计时器启动时,您将获得帧的当前位置并递增“x”值,然后调用帧的setLocation(…)方法。@camickr感谢您的回答。它有很多信息我可以在未来使用。但这不是我现在需要的。我真的需要知道如何从实际计时器传递值,以及如何刷新帧以使其具有实际位置。它还涉及如何访问该方法。这就是它对我的意义。但是带有摆动计时器的tipp以后也可以使用。*我真的需要知道如何从实际计时器传递值以及如何刷新帧*-我已经说过这是错误的方法。您需要使用
getLocation()
方法获取帧的当前位置。然后使用
setLocation(…)
方法更改该值。您可以将Timer和ActionListener定义为FrameTwo类的一个注释性内部类,以便于访问对话框的位置。@camickr Ok谢谢。这就是我需要的。你能给我一个基于我的示例代码吗?请参阅:。到目前为止,您已经发布了6个问题,除一个问题外,所有问题都有答案,但没有答案被接受。
///////////////////////////////////////////      THE FIRST FRAME   



public class FrameOne extends JFrame implements ActionListener{

private FrameTwo frameTwo;
private JButton btn1 = new JButton();;
private TimerClass timerClass;





///////////////////////////////////////////      CONSTRUCTOR FrameOne      

FrameOne(){

    setLocation(300, 300);

    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(300, 300);
    setLayout(new FlowLayout());
    setVisible(true);

    this.add(btn1);
    btn1.addActionListener(this);



//////////////////////////      HERE THE SECOND FRAME AND TIMER ARE INITIALIZED  /////////////////

@Override
public void actionPerformed (ActionEvent e) {
    if(e.getSource()==btn1 ) {

        frameTwo = new FrameTwo();


}
///////////////////////////////   THE SECOND FRAME    /////////////////


public class FrameTwo extends JDialog {

FrameTwo() {

setLocation(timerClass.x, 300);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setSize(300, 300);
setVisible(true);

}
}
////////////////////////////////////    THE TIMER      /////////////////


public class TimerClass implements EventListener{

public Timer timer = new Timer(true);
int x;

TimerClass (Runnable runIt){

    timer.scheduleAtFixedRate(new TimerTask(){
        @Override public void run() {
            x++;
                runIt.run();}     
                    },1000, 1);
    }}