Я делаю шахматоподобную игру в Java Swing (я знаю, что Swing - не правильный способ go об этом, но я все же хочу попробовать) У меня проблема с созданием шахмат фигуры появляются на дисплее в нужном темпе. Из-за характера физических позиций шахматных фигур я не могу использовать менеджер раскладки. Код выглядит примерно так (по общему признанию неловко спроектировано):
public class Window extends JFrame {
private JPanel board;
public Window() {
super();
board = new JPanel();
JLabelOrganizer jlo = new JLabelOrganizer();
for (JLabel: JLabelOrganizer) {
JLabel.setBounds(calcX(), calcY(), width, height);
board.add(JLabel);
}
board.setBounds(x, y, width1, height1);
board.setLayout(null);
add(board);
setLayout(null);
}
public class JLabelOrganizer {
public JLabelOrganizer {
instantiate Type1 and Type2 JLabel objects and store them
}
public class Type1 extends JLabel {
}
public class Type2 extends JLabel {
}
}
}
Классы Type1 и Type2 представляют собой кусочки. Когда это выполняется, JLabels (Type1 и Type2) не отображаются в правильном месте, как указано в setBounds (). Однако плата JPanel, содержащая эти части, установлена в правильном месте, как указано в вызове ее собственного setBounds (). Есть ли у кого-нибудь представление о том, почему это происходит? Может ли это быть потому, что я наследую от JLabel или классы JLabel являются внутренними классами? Спасибо.
Редактировать: Забыл указать, что JLabels отображаются только в верхнем левом углу того места, где находится JPanel, независимо от того, в каких положениях x и y я их установил.