【发布时间】:2020-09-21 03:08:48
【问题描述】:
它是一个 java 程序,旨在看起来像 Windows 10 蓝屏死机,但我不知道如何向它添加图像。
我尝试了许多不同的方法,但它们对我没有用,也许我做错了。图像是将位于左下角的 QR 码。
import javax.swing.JFrame;
import javax.swing.*;
import java.awt.*;
public class BSODJava {
public static void main(String[] args) {
JFrame frame = new JFrame("Lab00");
frame.setSize(1366, 768);
frame.setLocation(0, 0);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(new Panel1());
frame.setVisible(true);
frame.setBackground(Color.black);
}
}
class Panel1 extends JPanel {
public void paintComponent(Graphics g) {
g.setColor(new Color(6, 117, 170));
g.fillRect(1, 1, 1366, 768);
g.setColor(new Color(255, 255, 255));
g.setFont(new Font("Segoe UI", Font.PLAIN, 200));
g.drawString(";)", 50, 165);
g.setColor(new Color(255, 255, 255));
g.setFont(new Font("Segoe UI", Font.PLAIN, 52));
g.drawString("Your PC ran into a problem and needs to restart. We'll", 50, 270);
g.setColor(new Color(255, 255, 255));
g.setFont(new Font("Segoe UI", Font.PLAIN, 52));
g.drawString("restart for you.", 50, 330);
}
}
【问题讨论】:
-
1) “好吧,我想我做了你说的一切” 谁说的一切? 2)不要添加新信息作为答案。而是edit 的问题。 3) 输入的错误似乎是可运行的 JavaScript。而是使用代码格式(在原始问题中使用)。
-
BTW -
g.fillRect(1,1,1366,768);左上角的像素是 0,0,宽度和高度可以在运行时确定,所以更像g.fillRect(0,0,getWidth(),getHeight());。但话虽如此,在构造函数和paint方法中设置背景颜色,调用super.paintComponent(g)自动绘制BG。 -
我建议优化您的导入。导入 x.x.* 不是很好的做法,会导致程序变慢
-
@Sqepia "导入 x.x.* 不是很好的做法,会导致程序变慢" 不,不会。所有导入都在编译时解析,只有完全限定的类名写入类文件。所以它会稍微减慢编译速度(通常不会明显),但会对类的运行方式产生 0 的影响。使用完全限定导入的原因是为了其他程序员的利益。但是对于在 SO 上制作短代码,甚至更短,它们是完全可以接受的。