当前位置: 首页 > 知识库问答 >
问题:

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

东方森
2023-03-14

嗨,我有以下问题我的小程序应该打印字符到小程序沿垂直线,但它只打印最后一个字符从字符串。当我使用//System.out.print(字母[i]);或//System.out.println(文本);检查什么是字符串或charArray的内容它打印正确的输出,但我的油漆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个答案

西门洛城
2023-03-14

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;
    }
}

请注意,您不希望增加x坐标偏移量以实现垂直输出

 类似资料:
  • 我有一个函数,可以为传入的用户数组(使用 RSA 算法)生成密钥对,它似乎为每个用户正确生成密钥并将它们添加到数组列表中。但是,当我尝试打印输出时,它似乎只打印最后一个元素。似乎无法弄清楚我做错了什么。 下面是生成密钥并返回数组列表的函数:-它将用户的字符串数组作为参数。 这是我如何测试它:- 我收到的输出是

  • 问题内容: 我想知道打印2D阵列的最佳方法是什么。这是我的一些代码,我只是想知道这是否是一种好习惯。如果发现任何其他错误,请更正我在此代码中犯的任何其他错误。谢谢! 问题答案: 你可以用简单的方式打印。 在下面使用以打印2D阵列 在下面使用以打印一维阵列

  • 我非常困惑,因为如何才能从另一个方法获取ArrayList,并将其打印到另一方法?所以我这里的问题是,我的代码是关于学生注册系统的,它有两个方法,即admin和student,所以从admin方法,我们可以添加我们想要的数组,当我们在admin方法中打印出来时,它可以正常工作。但当我试图用学生法打印出来时,似乎没有用。代码如下: 我真的希望有人能理解我的问题,并努力解决它..请:(也谢谢你 以下是

  • 我试图打印每个单词的第一个字符放入一个二维数组。我得到一个错误,当我试图打印它的子串。 我得到一个不可编译的源代码错误。

  • 问题内容: 我正在用Python编写程序,并希望将终端中打印的最后一个字符替换为另一个字符。 伪代码为: 我正在使用Windows8 OS,Python 2.7和常规解释器。 到目前为止,我看到的所有选项都不适合我。(例如:,(#为1),)。 这些选项是在其他Stack Overflow问题或其他资源中提出的,似乎对我不起作用。 编辑 :也使用不会改变影响。它只是不会擦除最后打印的字符。相反,使用

  • 问题内容: 在Java中,数组不会覆盖toString(),因此,如果您尝试直接打印一个数组,则得到数组的十六进制,如下所示: 但是通常情况下,我们实际上会想要更多类似的东西。最简单的方法是什么?以下是一些示例输入和输出: 问题答案: 从Java 5开始,您可以;然后将或用于数组中的数组。请注意,版本调用数组中的每个对象。输出甚至以您要求的确切方式修饰。 例子: 简单数组: 输出: 嵌套数组: 输

  • 目前控制台打印循环中的所有值,但只需要打印最后一个

  • 本文向大家介绍PHP数组操作——获取数组最后一个值的方法,包括了PHP数组操作——获取数组最后一个值的方法的使用技巧和注意事项,需要的朋友参考一下 php开发过程中,可能经常需要对取出的数组要获取数组的最后健或值。在这里呐喊教程总结了三个方法,并且跟据他们三个方法在一些情况下如何使用的条件限制进行了说明。 总体来说,php的内置函数end还是最好的方法的了。大家可以测试下。 PHP取值很容易,可以