public class TestPane extends JPanel {
public TestPane() {
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
ImageIcon grassIcon = new ImageIcon("C:\\Users\\Pamvotis\\Desktop\\Project\\img\\icon.png");
JLabel labels = new JLabel();
for (int row = 0; row < 10; row++) {
for (int col = 0; col < 6; col++) {
gbc.gridx = col;
gbc.gridy = row;
CellPane cellPane = new CellPane();
Border border = null;
if (row < 9) {
if (col < 5) {
border = new MatteBorder(1, 1, 0, 0, Color.BLACK);
} else {
border = new MatteBorder(1, 1, 0, 1, Color.BLACK);
}
} else {
if (col < 5) {
border = new MatteBorder(1, 1, 1, 0, Color.BLACK);
} else {
border = new MatteBorder(1, 1, 1, 1, Color.BLACK);
}
}
cellPane.setBorder(border);
if ((row==0)&&((col==2)||(col==3))) {
cellPane.setBackground(Color.RED);
} else if ((row==9)&&((col==2)||(col==3))) {
cellPane.setBackground(Color.WHITE);
labels = new JLabel(grassIcon);add(labels);
} else {
cellPane.setBackground(Color.GREEN);
}
add(cellPane, gbc);
}
}
}
Итак, у меня есть этот код, но проблема заключается в том, что каждый раз, когда я запускаю программу, метки с изображениями помещаются в первую строку после сетки. Это происходит с каждой другой попыткой, которую я сделал, чтобы метки всегда отображались в первой строке сетки или на первой строке после сетки. Кто-нибудь может мне с этим помочь?Как добавить ярлыки в определенные ячейки панели GridLayout в Java?
так как именно я должен указать ограничение в инструкции add (...)? извините, я очень новичок в java – helpme
@helpme, я не знаю, каково ваше требование. Я понятия не имею, почему вы пытаетесь добавить два компонента в сетку в одном цикле. Может быть, вы хотите добавить ярлык в CellPane, а не в панель? Опять же, я понятия не имею, что такое CellPane или какой менеджер макетов вы используете на панели сот. 'Я очень новичок в java'. Содержите ссылку на учебник [Swing tutorial] (http://docs.oracle.com/javase/tutorial/uiswing/TOC.html). В нем есть рабочие примеры всех основ Swing. В разделе «Менеджеры макетов» есть раздел с рабочими примерами, если мое простое предложение не поможет вам. – camickr
Кроме того, не записывайте блоки кода в одну строку. Каждый оператор Java должен быть в своей собственной строке, чтобы сделать его более читаемым и простым в обслуживании. См. Править. – camickr