Я хочу изменить порядок отображения инвентаряJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Я хочу изменить порядок отображения инвентаря

Сообщение Anonymous »


Изображение
Этот метод в классе 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();
}
Инициализация панели и т.п. производится в классе GameUI;

Код: Выделить всё

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);
}
Я использовал JScrollPane, чтобы избежать странного макета при наличии большого количества элементов (раньше это была сетка).
Проблема в следующем; Отображается очень странно, полоса прокрутки внизу горизонтальная, а кнопки слишком огромные. Я не уверен, что мне нужно изменить и есть ли более эффективный способ сделать это. Есть идеи?
Редактировать: я исправил проблему, заставив ее использовать вертикаль с помощью VERTICAL_SCROLLBAR_ALWAYS, исправил макет на BoxLayout и вручную отрегулировал размер кнопок, чтобы они не смещались.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»