【发布时间】:2014-04-29 05:10:44
【问题描述】:
您好我有以下问题我的小程序应该打印字符到小程序垂直线,但它只打印字符串中的最后一个字符。我尝试在循环内部的不同位置移动 repaint() 方法,但它仍然只打印出字符串中的最后一个字符。当我使用 //System.out.print(letters[i]);或 //System.out.println(text);检查字符串或 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);
}
}
【问题讨论】:
-
1) 为什么要编写小程序?如果是由于规范。老师请发给Why CS teachers should stop teaching Java applets。 2) 为什么选择 AWT 而不是 Swing?请参阅我在 Swing extras over AWT 上的回答,有很多放弃使用 AWT 组件的充分理由。