我刚刚开始学习 Java 编程,甚至最近学习图形,我遇到了一些问题。我想创建一个外观类似于矮人要塞的游戏,使用彩色文本而不是图像。
这是我到目前为止所拥有的:
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.red);
for (int i = 0; i < 50; i++) {
g.drawString("[Game goes here]", 100, 150);
g.dispose();
System.out.println(i);
}
g.dispose();
}
public GTest() {
setSize(Toolkit.getDefaultToolkit().getScreenSize().width / 3, Toolkit
.getDefaultToolkit().getScreenSize().width / 3 + 50);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
GTest myWindow = new GTest();
}
我希望它更新计时器上的图形,但我不确定如何执行此操作。
我知道这是一个相当广泛的问题,我很乐意澄清您可能想知道的任何事情。
编辑:
所以我添加了这一点:
String[] letters = new String[10];
float fontsize = Toolkit.getDefaultToolkit().getScreenSize().width / 30;
public void paint(Graphics g) {
g.setColor(textColor);
setFont(getFont().deriveFont(fontsize));
for(int i = 0; i < 10; i++){
if((int) (Math.random() * 100) > 97){
letters[i] = "w";
textColor = new Color(0, 0, 100);
}else{
letters[i] = "l";
textColor = new Color(0, 100, 0);
}
g.drawString(letters[i], i * 3, 10);
}
但现在它根本不显示。我在 g.drawString 之后添加了一个 sysout 并执行了它,所以我不确定问题是什么。