gpt4 book ai didi

java - 启动窗口在 mac 中不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 04:02:07 24 4
gpt4 key购买 nike

由于显示 JAVA 6 启动画面时出现问题,我使用以下方法显示启动窗口。

File splashImageFile = new File(Constants.PATH_IMAGE + "splash.png");
final BufferedImage img = ImageIO.read(splashImageFile);
final JWindow window = new JWindow() {
private static final long serialVersionUID = -132452345234523523L;

@Override
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g.create();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
Rectangle windowRect = getBounds();
try {
Robot robot = new Robot(getGraphicsConfiguration().getDevice());
BufferedImage capture = robot.createScreenCapture(new Rectangle(windowRect.x, windowRect.y, windowRect.width, windowRect.height));
g2.drawImage(capture, null, 0, 0);
} catch (IllegalArgumentException iae) {
System.out.println("Argumets mis matched.\n" + iae.getMessage());
} catch(SecurityException se){
System.out.println("Security permission not supported\n" + se.getMessage());
} catch (AWTException ex) {
System.out.println("Exception found when creating robot.\n" + ex.getMessage());
}
g2.drawImage(img, 0, 0, null);
g2.setFont(new Font("TimesRoman", Font.BOLD, 15));
g2.drawString("Loading...", 320, 260);
g2.dispose();
}
};
window.setAlwaysOnTop(true);
window.setPreferredSize(new Dimension(img.getWidth(), img.getHeight()));
window.pack();
window.setLocationRelativeTo(null);
window.setVisible(true);
window.repaint();

图像是 png 透明图像,因为我的窗口中需要圆角矩形形状。它适用于 Win 7,但适用于 mac 10.8。 Mac 仍然显示矩形背景。实际上它似乎也不是背景。有人可以告诉我是什么原因造成的。以下是每个平台的图像。

在 window 上

windows

在苹果电脑上

mac

提前致谢。

编辑:

答案很好,但我发现 AWTUtilities 并不总能获得系统支持。所以在某些系统中,回答的方法可能会失败。没有正式的解决方案吗?我的意思是解决方案来自基础层面?

最佳答案

http://docs.oracle.com/javase/tutorial/uiswing/misc/trans_shaped_windows.html#shaped这显示了如何创建异形窗口

addComponentListener(new ComponentAdapter() {
// Give the window an elliptical shape.
// If the window is resized, the shape is recalculated here.
@Override
public void componentResized(ComponentEvent e) {
setShape(new Ellipse2D.Double(0,0,getWidth(),getHeight()));
}
});

setUndecorated(true);

他们说:从 Java Platform, Standard Edition 6 (Java SE 6) Update 10 版本开始,您可以向 Swing 应用程序添加半透明和异形窗口。

关于java - 启动窗口在 mac 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13099407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com