Многослойные панели Java GUI

введите здесь описание изображения

введите здесь описание изображения

введите здесь описание изображения

Хорошо, у меня есть класс, который печатает доску, и другой класс, который печатает шахматы.

как мне использовать LayeredPane, чтобы объединить их вместе, как показано на рисунке выше? Я пытался весь день, и ничего, кажется, не работает вообще. Я использую JFrame для печати изображения.


person ricedragon    schedule 05.11.2011    source источник
comment
возможный дубликат классов Java, интерфейса и графического интерфейса   -  person trashgod    schedule 05.11.2011


Ответы (2)


Ваш вопрос мало что говорит нам о структуре вашей программы или конкретной проблеме, с которой вы столкнулись. Я предполагаю, что вы ознакомились с руководством по JLayeredPane, которое должен объяснить вам в значительной степени работу JLayeredPane, и что вы полностью ее понимаете, в противном случае я предполагаю, что вы попросите разъяснений по поводу путаницы в вашем вопросе выше.

В этом ответе я описал один из способов, которым я подошел к аналогичному проекту: -the-jpanel/4687759#4687759">добавление-jlabel-на-jpanel-скрывает-jpanel. Пожалуйста, ознакомьтесь с ним и еще раз просмотрите учебник по Swing и спросите, если что-то не имеет смысла.

person Hovercraft Full Of Eels    schedule 05.11.2011

Вы должны распечатать шахматы и доску одним и тем же paintComponent() методом. Поэтому печатайте их в одном классе. Вы можете использовать что-то вроде:

public void paintComponent(Graphics g) {
    printBoard(g);
    printChess(g);
}
person Jonas    schedule 05.11.2011
comment
как требование, я должен делать их в отдельных классах, иначе я бы сделал это намного проще - person ricedragon; 05.11.2011
comment
@ricedragon: это усложняет задачу. - person Jonas; 05.11.2011
comment
вот почему я спрашиваю, у меня нет ни малейшего понятия, потому что, если я добавлю два объекта в Jfame, ChessPiece перезапишет доску. - person ricedragon; 05.11.2011
comment
тот же z-индекс? или непрозрачный установлен в true? См. download.oracle.com/javase/tutorial/uiswing/components/ для получения дополнительной информации - person Tedil; 05.11.2011