правильный способ создания нескольких похожих кнопок/панелей

У меня есть приведенный ниже код, который я пытался сделать, но он показывает только (кнопка минус/плюс) на последнем GridLayout (статус интеллекта):

JButton plusButton = new JButton("+");
JButton minusButton = new JButton("-");

statStrengthGridPanel = new JPanel(new GridLayout(1,3));
statStrengthGridPanel.add(minusButton);
statStrengthGridPanel.add(new JLabel("10"));
statStrengthGridPanel.add(plusButton);

statConstitutionGridPanel = new JPanel(new GridLayout(1,3));
statConstitutionGridPanel.add(minusButton);
statConstitutionGridPanel.add(new JLabel("10"));
statConstitutionGridPanel.add(plusButton);

statDexterityGridPanel = new JPanel(new GridLayout(1,3));
statDexterityGridPanel.add(minusButton);
statDexterityGridPanel.add(new JLabel("10"));
statDexterityGridPanel.add(plusButton);

statIntelligenceGridPanel = new JPanel(new GridLayout(1,3));
statIntelligenceGridPanel.add(minusButton);
statIntelligenceGridPanel.add(new JLabel("10"));
statIntelligenceGridPanel.add(plusButton);

Я знаю, что могу сделать что-то вроде того, что я сделал для имен панелей (иметь несколько), но я не хочу делать это для панелей в первую очередь. Я пытаюсь использовать передовой опыт и не хочу, чтобы мой код повторялся. Какие-либо предложения??

Цель состоит в том, чтобы иметь 4 статистики, которым можно назначать очки, с кнопками уменьшения и увеличения (я отказался от ползунков). В конце концов у меня будут верхний и нижний пределы, уменьшится метка «неиспользуемый» и все такое хорошее, но я просто не хочу повторяться.


person KisnardOnline    schedule 25.11.2011    source источник
comment
См. также Как использовать счетчики.   -  person trashgod    schedule 25.11.2011
comment
Вы думали о создании пользовательской панели статистики или компонента панели сетки? Вы можете расширить JPanel и создать класс GridPanel, который добавит кнопки и метки при построении или что-то в этом роде.   -  person Nate W.    schedule 25.11.2011
comment
спасибо, я решил использовать Spinners   -  person KisnardOnline    schedule 25.11.2011


Ответы (1)


Причина, по которой он не работает, заключается в том, что вы добавляете одни и те же кнопки на разные панели сетки. Я думаю, что вам нужно создавать новые для каждого места, где вы хотите их видеть. Попробуйте что-то вроде

statStrengthGridPanel = new JPanel(new GridLayout(1,3));
statStrengthGridPanel.add(new JButton("-"));
statStrengthGridPanel.add(new JLabel("10"));
statStrengthGridPanel.add(new JButton("+"));
person Katu    schedule 25.11.2011
comment
да, я не хотел этого делать, потому что тогда я бы создал в 4 раза больше кнопок, но мне просто нужно преодолеть свой страх создавать слишком много вещей. Я должен помнить объектно-ориентированный :) Спасибо! - person KisnardOnline; 29.11.2011