Эта часть кода отлично работает, когда не используется массив или массивы.Когда я пытаюсь запустить свою программу, графический интерфейс не загружается, и я не могу понять, почему
import javax.swing.*;
public class GUI
{
public static void main(String[] args) {
JFrame frame = new JFrame("01");
frame.getContentPane().add(new Panel());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setResizable(false);
frame.setVisible(true);
}
}
Эта часть кода работает отлично, если не используется массивы или ArrayLists
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Panel extends JPanel
{
private Shapes shapes;
public Panel() {
setFocusable(true);
requestFocusInWindow();
setPreferredSize(new Dimension(500,500));
}
public void paintComponent(Graphics gc) {
super.paintComponent(gc);
shapes.draw(gc);
}
}
В этом классе, если не использовать массивы или ArrayLists он прекрасно работает, но я не могу это сделать работать с ними.
import java.awt.*;
import java.util.ArrayList;
import javax.swing.*;
import java.awt.event.*;
public class Shapes
{
ArrayList <int[]> blocks = new ArrayList <int[]>();
int[] arr;
int w,x,y,z;
public void draw(Graphics gc) {
gc.setColor(Color.black);
blocks();
for(int i=0; i<blocks.size()-1; i++){
w=blocks.get(i)[0];
x=blocks.get(i)[1];
y=blocks.get(i)[2];
z=blocks.get(i)[3];
gc.fillRect(w, x, y, z);
}
}
public void blocks() {
popBlocks(100,500,300,30);
popBlocks(300,400,150,30);
popBlocks(500,300,150,30);
popBlocks(700,200,150,30);
popBlocks(900,100,150,30);
}
private void popBlocks(int a, int b, int c, int d) {
arr[0] = a;
arr[1] = b;
arr[2] = c;
arr[3] = d;
blocks.add(arr);
}
}
Какие у вас проблемы/ошибки? Есть ли стек, который вы можете добавить в свой ответ? – MasterBlaster
В очередях, что вы делаете, это «push». «pop» обычно _removes_ элемент из очереди. –