
Этот метод в классе Game выполняет инвентаризацию, добавляя кнопку для каждого предмета в инвентаре игрока (и добавляет прослушиватель для каждого из них, чтобы обрабатывать действия позже). Иногда ему приходится обращаться к полям, вызывая класс GameUI, экземпляр которого я создал в игровом классе, следовательно, ui.(...) (Я знаю, это своего рода нечистая реализация, но я просто пытаюсь преодолеть часть инвентаря rn).
Код: Выделить всё
public void makeInventory() {
ui.listPanel.removeAll();
InventoryHandler iHandler = new InventoryHandler();
for (Item item : player.getInventory()) {
JButton inventoryButton = new JButton(item.getName());
inventoryButton.setBackground(Color.black);
inventoryButton.setForeground(Color.white);
inventoryButton.setFont(ui.normalFont);
inventoryButton.setFocusPainted(false);
inventoryButton.addActionListener(iHandler);
inventoryButton.setActionCommand("item");
ui.listPanel.add(inventoryButton);
}
ui.listPanel.revalidate();
ui.listPanel.repaint();
}
Код: Выделить всё
public void createInventoryArea() {
listPanel = new JPanel();
listPanel.setBackground(Color.black);
listPanel.setLayout(new GridLayout());
inventoryScroll = new JScrollPane(listPanel);
inventoryScroll.setBounds(550, 350, 300, 200);
inventoryScroll.setBorder(null);
inventoryScroll.setVisible(false);
con.add(inventoryScroll);
}
Проблема в следующем; Отображается очень странно, полоса прокрутки внизу горизонтальная, а кнопки слишком огромные. Я не уверен, что мне нужно изменить и есть ли более эффективный способ сделать это. Есть идеи?
Мобильная версия