【发布时间】:2020-11-22 09:31:08
【问题描述】:
我是一个初学者,正在尝试编写一个小游戏。不幸的是,我目前无法在 JFrame 上插入图像文件。
我从网上得到这个版本,但不幸的是,我运行它时什么都没有显示。
import java.awt.*;
import javax.swing.*;
public class Draw extends JLabel {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D Graphic1 = (Graphics2D) g;
Graphic1.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.setColor(new Color(0, 191, 255)); // farbe hintergrund einstellen
g.fillRect(0, 0, Var.Framebreite, Var.Framehöhe);
g.setColor(Color.yellow);
Font currentFont = g.getFont(); // schriftgröße von Leben bestimmen
Font newFont = currentFont.deriveFont(currentFont.getSize() * 8F);
g.setFont(newFont);
double b = Math.round(0.125 * Var.Framebreite);
int h = (int) b;
g.drawString("" + Var.LebenSpieler1, Var.Framebreite / 2 - h - 100, 90); // Leben anzeige spieler
// !muss "" + variable geschriebeen
// werden
g.drawString("" + Var.LebenSpieler2, Var.Framebreite / 2 + h, 90); // Lebven anzeigen gegnerspieler
ImageIcon icon = new ImageIcon("C:\\Users\\justi\\OneDrive\\Desktop\\OnlineSchule\\Englisch\\Test.PNG");
JLabel l1 = new JLabel(icon);
JPanel feld = new JPanel();
feld.add(l1);
feld.setBounds(30, 30, 110, 110);
repaint();
}
}
【问题讨论】:
-
什么你在跑吗?您发布的代码中没有 main 方法。
-
我会摆脱那个例子,因为它不是很好,而且会做很多不应该做的事情
-
您的问题非常广泛,需要大量“附加”上下文。您要做的第一件事是弄清楚如何加载图像 - Reading/Loading an Image。这变得有点复杂,因为您可以从许多不同的来源加载图像。
-
在 Swing 中有多种显示图像的方式,但是如果您想更好地控制图像的显示方式,那么您应该花一些时间来更好地了解在 Swing 中绘画是如何工作的
-
“从互联网上得到了这个版本” 把它放回你找到它的地方。然后将汽油倒在上面并点燃。这是可怕的代码,不应该被用来误导更多的人。
标签: java image swing jframe jpanel