java - 使用 setLocation 在 Windows、Java 中移动 JFrame

标签 java swing jframe actionevent

我正在尝试使用 5 个按钮(北、东、南、西和中心)在 Windows 中移动 JFrame 目前,所有当前代码都已就位,并且在使用时可以工作;

public void actionPerformed(ActionEvent e)
{
    if(e.getSource()==northButton)
    {
       setLocation(500,500);
    }

} //works

public void actionPerformed(ActionEvent e)
{
    if(e.getSource()== northButton)
    {
       setLocation(north);
    }

} //doesn't work

但是,作为任务的一部分,我需要使用 Java 工具包来 getScreenSize 宽度和高度,并使用计算来计算出屏幕的边界并将“北”发送到 setLocation( ) (如上)。但是,使用此方法会引发错误“找不到合适的方法”我不确定如何解决此问题。下面的计算代码目前仅针对北。

int screenWidth = Toolkit.getDefaultToolkit().getScreenSize().width;
int screenHeight = Toolkit.getDefaultToolkit().getScreenSize().height;

int width = this.getWidth();
int height = this.getHeight();

int north = ((screenWidth - width)/2);

任何帮助将不胜感激。 谢谢!

最佳答案

这里传递两个参数,X 和 Y:

setLocation(500,500);

你正在经过一个,但它是哪一个呢? X还是Y?如果是 X,Y 在哪里?:

int north = ((screenWidth - width)/2);
setLocation(north);

编译器告诉您它没有采用一个参数的 setLocation() 方法。它需要 2D 空间中的一个位置:即 X Y。可能您想要的是:

setLocation(north, 0);

关于java - 使用 setLocation 在 Windows、Java 中移动 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21921135/

相关文章:

java - 如何知道 Java SE 类或方法是否线程安全?

java - 通过 tomcat 上的 url 使图像可用

java - EventBus android实现,为什么要反射

java - 无法使用 JTextArea 修复 NullPointerException

java - j.u.Scanner 使用中的 NullPointerException

java - 当我尝试使用 Canvas 显示背景图像时出现问题

包含管道和换行符的Java Split字符串

java - 如何使用 ActionListener 更改 JTable

java - JSlider -- 区分 setValue() 和用户输入

java - 从 JFrame 修改独立的 JPanel