对于循环打印出错误的数字

时间:2015-04-03 17:07:41

标签: java for-loop graphics paint repaint

我的for循环打印出的数字超出应有的数量。正如你在下面看到的,我的for循环的最大数字是5,它从1开始。这意味着它应该打印出1到5.但我的输出完全不同。

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class Paint extends JPanel {

static Paint paint = new Paint();
static int y = 0;

@Override
public Dimension getPreferredSize() {
    return new Dimension(500, 500);
}

public void paintComponent(Graphics g) {

    super.paintComponent(g);

    g.setColor(Color.BLUE);

    for (int x = 1; x <= 5; x++) {
        Fonts.font = new Font(Fonts.fonts[x], Font.PLAIN, 12);
        g.setFont(Fonts.font);
        g.drawString("Hello", 50, y);
        System.out.println(x + ":" + y);
        y += 30;

    }

}

}

这是我的输出:

1:0 2:30 3:60 4:90 5:120 1:150 2:180 3:210 4:240 5:270 1:300 2:330 3:360 4:390 5:420 1:450 2:480 3:510 4:540 5:570 1:600 2:630 3:660 4:690 5:720 1:750 2:780 3:810 4:840 5:870 1:900 2:930 3:960 4:990 5:1020 1:1050 2:1080 3:1110 4:1140 5:1170 1:1200 2:1230 3:1260 4:1290 5:1320 1:1350 2:1380 3:1410 4:1440 5:1470 1:1500 2:1530 3:1560 4:1590 5:1620

如果你知道什么是错的,请告诉我。谢谢。 另外,这是我的主要方法所在的另一个课程。

import java.awt.*;

import javax.swing.*;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Fonts {



static String fonts[] = new String[605 + 1];
static Font font;

static void loadFont() throws FileNotFoundException {

    int index = 1;

    File fontTxt = new File("fonts.txt");
    Scanner scan = new Scanner(fontTxt);

    while (scan.hasNextLine()) {

        fonts[index] = scan.nextLine();
        index++;

    }

}

public static void main(String[] args) throws FileNotFoundException {
    loadFont();

    Frame.frame.add(Paint.paint);
    Frame.frame();



}
}

这是我正在使用的帧类。

 import java.awt.Color;

 import javax.swing.*;

 public class Frame {
 static JFrame frame = new JFrame();

// JLabel(String);
// JTextField(int);
// JTextArea(int,int);
// JPasswordField(int);
// JRadioButton(String);
// JCheckBox(String);
// JButton(String);
// JList();
// JComboBox();

  static void frame() {


        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setBackground(Color.WHITE);
        frame.setResizable(false);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


    }

    }

0 个答案:

没有答案