我需要帮助,因为我想用Java编码游戏。 当我发现它不会向JFrame绘制字符串时,我停在了我的轨道上。 我尝试了几种方法来解决这个问题,并做了大量的研究,但什么都没发现。 这是代码: - 俄勒冈(主类):JFrame不会让我drawString();
package com.lojana.oregon.client;
import java.awt.*;
import javax.swing.*;
import com.lojana.oregon.src.Desktop;
import com.lojana.oregon.src.Keyboard;
import com.lojana.oregon.src.Mouse;
import com.lojana.oregon.src.Paint;
public class Oregon extends JFrame {
private static final long serialVersionUID = 1L;
// Currently unused but there will be a use for it in the future
public Desktop desktop;
public String TITLE = "Oregon";
public Oregon() {
/* Window code */
setTitle(TITLE);
setSize(640, 640);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
/* Extra code for Window */
addKeyListener(new Keyboard());
addMouseListener(new Mouse());
}
public void paint(Graphics g) {
Paint.paint(g);
}
}
GuiButton(绘画类):
package com.lojana.oregon.src;
import java.awt.*;
public class GuiButton {
public GuiButton(Graphics g, String text, Font font, int coordX, int coordY,
int textX, int textY, int width, int height) {
Color border = Color.gray;
Color fill = Color.white;
Color textColor = Color.black;
Stroke borderSize = new BasicStroke(8);
g.setColor(border);
((Graphics2D) g).setStroke(borderSize);
g.drawRect(coordX, coordY, width, height);
g.setColor(fill);
g.fillRect(coordX, coordY, width, height);
g.setColor(textColor);
g.setFont(font);
g.drawString(text, textX, textY);
}
}
GuiMainMenu(使用该GuiButton文件的文件):
package com.lojana.oregon.src;
import java.awt.*;
public class GuiMainMenu {
public static void paint(Graphics g) {
new GuiButton(g, "Start Game", new Font("Arial", Font.BOLD, 20), 60, 80, 20, 20, 240, 40);
}
}
如果你知道如何解决它,请评论。 非常感谢:)
您是什么意思,它不会绘制'String'?你是否遇到异常?除'drawString'之外的所有东西都可以工作吗? – Jeffrey
我试图让它使用paint(Graphics g)方法向JFrame绘制一个字符串。我试图画出的文字不会显示出来。当我尝试在主文件中使用drawString()方法时,它会显示文本,但会显示它后面的程序。 –
这里heck是Paint类吗?这整个方法似乎蠢蠢欲动,包括你试图直接在JFrame上绘制。但是还有很多代码没有显示给我们,包括关键代码。我强烈建议您阅读Swing绘图教程,您可以在主要Java教程页面找到这些教程,以了解如何正确绘制。 –