Java 图形在计时器中不起作用



我正在用java编写一个小游戏。为此,我想打印一个包含一些文本的对话框文本框,以便与游戏内的人交谈。

    public static void printConBox(Graphics g, String firstLine, String secondLine, String thirdLine, String fourthLine){
    g.setColor(Color.WHITE);
    g.fillRect(x, y, 600, 180);
    g.setColor(Color.BLACK);
    Timer timer = new Timer();
    timer.schedule(new TimerTask(){
        @Override
        public void run() {
            if(i <= firstLine.length() - 1){
                char c = firstLine.charAt(i);
                i++;
                String s = "" + c;
                System.out.print(s);
                g.drawString(s, xdif, y + 25);
                xdif += 15;
            }else{
                timer.cancel();
            }
        }
    }, 0, 100);}

不用担心图形,这是有效的,因为程序正在绘制白色文本框。但是字符串"第一行"中的字母不存在。在运行中,这应该是文本的动画!

我认为这与计时器有关!但是输出控制台中的打印工作正常!我也尝试在 for 循环中使用 Thread.sleep 进行,但仍然无法正常工作......

有什么想法吗?...

PS.:我使用了paintComponent,所以图形正在工作,相信我;)

    public void actionPerformed(ActionEvent e){ 
    if(Conversation.i <= firstLine.length() - 1){
        char c = firstLine.charAt(Conversation.i);
        Conversation.i++;
        String s = "" + c;
        System.out.print(s);
        g.drawString(s, Conversation.xdif, Conversation.y + 25);
        Conversation.xdif += 15;
        Conversation.timer.restart();
    }else{
        Conversation.timer.stop();
    }
}

但是我如何获得 图形 在 der 动作执行,计时器工作?顺便说一下,系统正在工作!不错... ;)

相关内容

  • 没有找到相关文章

最新更新