gpt4 book ai didi

java - Paint g 方法仅打印数组中的最后一个字符

转载 作者:行者123 更新时间:2023-12-01 13:14:42 24 4
gpt4 key购买 nike

嗨,我有以下问题,我的小程序应该沿着垂直线将字符打印到小程序,但它只打印字符串中的最后一个字符。我尝试将 repaint() 方法移到循环外部的不同位置,但它仍然只打印字符串中的最后一个字符。当我使用//System.out.print(letters[i]); 时或//System.out.println(text);要检查 string 或 charArray 的内容是什么,它会打印正确的输出,但我的 Paint g 方法仅打印最后一个 char 形式数组有什么建议吗??

public class ExtensionExercise extends Applet implements ActionListener {
String text;
String output;
Label label;
TextField input;
int xCoordinates = 30, yCoordinates = 50;
char letters [];
public void init(){
label = new Label("Enter word");
add(label);
input = new TextField(10);
add(input);
input.addActionListener(this);
}
public void start(){
text = "";
}
@Override
public void actionPerformed(ActionEvent event) {
text = event.getActionCommand();
letters = text.toCharArray();

for(int i = 0; i<letters.length; i++){
text = String.valueOf(letters[i]);
xCoordinates +=10;
yCoordinates +=10;
}
repaint();
}
@Override
public void paint(Graphics g){
g.drawString(text, xCoordinates, yCoordinates);
}
}

最佳答案

您只在 for 循环之后调用 repaint 一次,因此显然只会出现最后一个字母。所有字母选择逻辑都需要出现在 paint 方法本身

@Override
public void paint(Graphics g) {
super.paint(g);

for (int i = 0; letters != null && i < letters.length; i++) {
text = String.valueOf(letters[i]);
g.drawString(text, xCoordinates, yCoordinates);
// xCoordinates += 10; remove this
yCoordinates += 10;
}
}

请注意,您不想增加xCooperatives偏移量来实现垂直输出

关于java - Paint g 方法仅打印数组中的最后一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22565458/

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