初始屏幕的大小 IDE
Size of splash screen IDE
对于我的论文工作,我需要创建一个 IDE,并且我想为 IDE 创建一个启动画面。
所以我的第一个问题是我不知道我必须为启动画面创建的图像的大小。
我的第二个问题是,市场上可能有很多不同的屏幕分辨率,并且对于某些计算机来说,屏幕启动画面可能更大或更小……我们可以做些什么来解决这个问题吗?
P.S.: 我真的很喜欢 IntelliJ 的启动画面 IDE (15),我想创建类似的东西作为启动画面。
//---------------------------------------- ----------------------//
问题2的解答:
//Get the resolution of the screen PC
Toolkit toolkit = Toolkit.getDefaultToolkit();
int X = (toolkit.getScreenSize().width);
int Y = (toolkit.getScreenSize().height);
//Get the pixels of the screen middle resolution
int cX = (toolkit.getScreenSize().width / 2) - ((int)((ImageView) s.lookup("#splash_logo")).getFitWidth())/2;
int cY = (toolkit.getScreenSize().height / 2) - ((int)((ImageView) s.lookup("#splash_logo")).getFitHeight()/2);
//Set the position of Stage to middle
primaryStage.setX(cX);
primaryStage.setY(cY);
如果你想根据显示器的分辨率缩放它,我会先用 java.awt.Toolkit:
得到高度和宽度
Toolkit toolkit = Toolkit.getDefaultToolkit();
int X = (toolkit.getScreenSize().width)
int Y = (toolkit.getScreenSize().height)
然后您可以使用此方法缩放您用于启动画面的图像:
public BufferedImage scaleImage(int multiplier, BufferedImage img) {
BufferedImage bi = new BufferedImage(multiplier * img.getWidth(null), multiplier * img.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics2D grph = (Graphics2D) bi.getGraphics();
grph.scale(multiplier, multiplier);
// everything drawn with grph from now on will get scaled.
grph.drawImage(img, 0, 0, null);
grph.dispose();
return bi;
}
然后通过计算中间并在此处设置您的组件,使其在屏幕上居中:
int cX = (toolkit.getScreenSize().width / 2) - (getWidth() / 2);
int cY = (toolkit.getScreenSize().height / 2) - (getHeight() / 2);
component.setLocation(cX, cY);
实际实施由您决定,但这些是我使用的工具,对我来说效果很好。希望这对您有所帮助!
对于我的论文工作,我需要创建一个 IDE,并且我想为 IDE 创建一个启动画面。 所以我的第一个问题是我不知道我必须为启动画面创建的图像的大小。 我的第二个问题是,市场上可能有很多不同的屏幕分辨率,并且对于某些计算机来说,屏幕启动画面可能更大或更小……我们可以做些什么来解决这个问题吗?
P.S.: 我真的很喜欢 IntelliJ 的启动画面 IDE (15),我想创建类似的东西作为启动画面。
//---------------------------------------- ----------------------//
问题2的解答:
//Get the resolution of the screen PC
Toolkit toolkit = Toolkit.getDefaultToolkit();
int X = (toolkit.getScreenSize().width);
int Y = (toolkit.getScreenSize().height);
//Get the pixels of the screen middle resolution
int cX = (toolkit.getScreenSize().width / 2) - ((int)((ImageView) s.lookup("#splash_logo")).getFitWidth())/2;
int cY = (toolkit.getScreenSize().height / 2) - ((int)((ImageView) s.lookup("#splash_logo")).getFitHeight()/2);
//Set the position of Stage to middle
primaryStage.setX(cX);
primaryStage.setY(cY);
如果你想根据显示器的分辨率缩放它,我会先用 java.awt.Toolkit:
得到高度和宽度Toolkit toolkit = Toolkit.getDefaultToolkit();
int X = (toolkit.getScreenSize().width)
int Y = (toolkit.getScreenSize().height)
然后您可以使用此方法缩放您用于启动画面的图像:
public BufferedImage scaleImage(int multiplier, BufferedImage img) {
BufferedImage bi = new BufferedImage(multiplier * img.getWidth(null), multiplier * img.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics2D grph = (Graphics2D) bi.getGraphics();
grph.scale(multiplier, multiplier);
// everything drawn with grph from now on will get scaled.
grph.drawImage(img, 0, 0, null);
grph.dispose();
return bi;
}
然后通过计算中间并在此处设置您的组件,使其在屏幕上居中:
int cX = (toolkit.getScreenSize().width / 2) - (getWidth() / 2);
int cY = (toolkit.getScreenSize().height / 2) - (getHeight() / 2);
component.setLocation(cX, cY);
实际实施由您决定,但这些是我使用的工具,对我来说效果很好。希望这对您有所帮助!