я должен написать этот код для отображения некоторого набора цветов с панели:JPanel заполняет все пространство JFrame
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Palette {
public static void main(String[] args) {
JFrame frame = new JFrame("Panel");
palette.add(new Color(255, 0, 0));
palette.add(new Color(0, 255, 0));
palette.add(new Color(0, 0, 255));
int width = 100;
int height = 250;
int x = 0;
for (Color color : palette) {
JPanel panel = new JPanel();
panel.setSize(width, height);
panel.setLocation(x, 750);
panel.setBackground(new java.awt.Color(color.getColor()));
frame.add(panel);
x+=width;
}
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1000, 1000);
frame.setVisible(true);
}
}
Две первые панели в нужном месте и с правильными размерами. Но последний заполняет все кадры синим цветом. Что не так?
Вы должны использовать соответствующий Layout Manager. По умолчанию JFrame имеет BorderLayout. –
@Dmytro, Что такое 'palette'? – mre
@mre Мне нужно угадать, что это список –