在调用setVisible(true)之前,将JFrame N像素(例如x方向上300像素)放置在远离屏幕中心的代码是什么?
我通常会执行以下操作来使JFrame居中.您可以将偏移量添加到wdwLeft变量中,如列表中所示,以将框架移离中心.(调用setPreferredSize()是多余的,只有在那里才能使这个演示工作.)
package testapplication;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Toolkit;
import javax.swing.JFrame;
public class MyJFrame extends JFrame {
MyJFrame() {
super("Test");
Dimension screenSize = new Dimension(Toolkit.getDefaultToolkit().getScreenSize());
setPreferredSize(new Dimension(200, 200));
Dimension windowSize = new Dimension(getPreferredSize());
int wdwLeft = 300 + screenSize.width / 2 - windowSize.width / 2;
int wdwTop = screenSize.height / 2 - windowSize.height / 2;
pack();
setLocation(wdwLeft, wdwTop);
}
public static void main(final String [] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
final MyJFrame jf = new MyJFrame();
jf.setVisible(true);
}
}
);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以添加其他逻辑,以确保偏移窗口仍然完全在屏幕内,如下所示getMaximumWindowBounds().