正确的方法来创建多个类似的按钮/面板

时间:2011-11-25 03:11:13

标签: java swing jpanel jbutton jspinner

我有以下代码,我试图做,但它只显示(减去/加号按钮)上一个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);

我知道我可以像我为Panel名称做的那样(有多个),但我不想首先为Panel做这件事。我正在尝试使用最佳实践,并且不希望我的代码重复。有什么建议??

目标是有4个统计数据,分配点,减量和增量按钮(我决定反对滑块)。最终我会有他们的上限和下限,减少"未使用的"标签,以及所有这些好东西,但我只是想不要重复。

1 个答案:

答案 0 :(得分:1)

它不起作用的原因是您将相同的按钮添加到不同的网格面板。我认为您需要为每个想要看到它们的地方创建新的。 尝试像

这样的东西
statStrengthGridPanel = new JPanel(new GridLayout(1,3));
statStrengthGridPanel.add(new JButton("-"));
statStrengthGridPanel.add(new JLabel("10"));
statStrengthGridPanel.add(new JButton("+"));