У меня проблема в java, где каждый раз, когда метод вызывается в классе paint, он обновляет координаты для прямоугольника, а затем должен его нарисовать.Краска прямоугольника каждый раз, когда метод называется
В настоящий момент все, что я получаю, - это метод, улучшающий координаты. Но отображается только один прямоугольник, последний из которых обновляется.
Как я могу создать прямоугольник для каждого вызова методов, а не только на последней итерации?
В моем основном классе у меня есть следующий код, который считывает данные из файла. Она читает одну строку, то вызывает класс краски, чтобы нарисовать прямоугольник, прежде чем читать следующий
try (BufferedReader br = new BufferedReader(new FileReader("numbers.txt")))
{
String line;
while ((line = br.readLine()) != null) {
int change2Int=Integer.parseInt(line.trim());
mp.getDataForDisplay(change2Int);//send to paint class
}
}
catch (Exception expe)
{
expe.printStackTrace();
}
В файле numbers.txt только дома:
0
3
5
2
Класс краска:
class mainPanel extends JPanel
{
int processes, storedProcesses;
// for rectangles
int xCoor =0;
int yCoor =0;
int width =10;
int height =50;
static int x = 100;
int [] y = {100,150,200,250,300,350,400,450,500,550};
//constructor and other irrelevant methods here
public void getDataForDisplay (int proc)
{
//the method checks the value from "proc" to see where to display a rectangle on screen. Only prints last rectangle to screen
int loop = 0;
while (loop <= storedProcesses)
{
if (proc == loop)
{
xCoor = x;
yCoor = y[loop];
x = x + 10;
System.out.println("right");
repaint();
}
else
{
System.out.println("wrong");
}
loop++;
}
System.out.println("OK WERE HERE");
repaint();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.fillRect (xCoor, yCoor, width, height);
}
Пожалуйста, придерживайтесь [Соглашения о присвоении имен Java] (http://www.oracle.com/technetwork/java/codeconventions-135099.html). –
Какую ценность занимает «storeProc»? Условия «в то время» и «если» соответствуют значению? – Journey
он читает из текстового файла INT, как показано выше. – lecardo