所以我的代码会在JPanel上垂直打印玩家姓名和得分,首先是所有玩家,然后是所有得分。我想知道如何一个接一个地打印他们的分数。例如。
Name1 Score1
Name2 Score2
Name3 Score3
Name4 Score4
我的代码是针对前10名玩家/分数而制作的,所以我使用数组进行此方法。我的代码是:
for (int x = 0; x < 10; x++)
{
JSingleplayer[x] = new JLabel (Singleplayer[x]);
EndPanelplayer.add(JSingleplayer[x],BorderLayout.EAST);
JSingleScore[x] = new JLabel (SingleScore[x]);
EndPanelscore.add(JSingleScore[x],BorderLayout.WEST);
}
EndFrame.add(EndPanelplayer);
EndFrame.add(EndPanelscore);
如你所见,我有2个面板。我设置了一个东部和一个西部但是没有用。我也尝试过两个南方。我需要帮助修复我的代码或添加其他代码,以便与其配合垂直打印。提前谢谢!
答案 0 :(得分:1)
答案 1 :(得分:0)
每当您想要排列标签和/或字段时,您应该立即考虑使用GridBagLayout。
您还应该使用小写字母来启动Java字段。以下是Java Naming Conventions。
这是你的代码。在定义JPanel时,您需要设置布局。
private static final Insets bottomInsets =
new Insets(0, 0, 6, 0);
private void addLabels() {
int gridy = 0;
for (int x = 0; x < 10; x++) {
jSingleplayer[x] = new JLabel(singleplayer[x]);
addComponent(mainPanel, jSingleScore[x], 0, gridy, 1, 1,
bottomInsets, GridBagConstraints.LINE_START,
GridBagConstraints.NONE);
jSingleScore[x] = new JLabel(singleScore[x]);
addComponent(mainPanel, jSingleScore[x], 1, gridy++, 1, 1,
bottomInsets, GridBagConstraints.LINE_START,
GridBagConstraints.NONE);
}
}
private void addComponent(Container container, Component component,
int gridx, int gridy, int gridwidth, int gridheight,
Insets insets, int anchor, int fill) {
GridBagConstraints gbc = new GridBagConstraints(gridx, gridy,
gridwidth, gridheight, 1.0D, 1.0D, anchor, fill,
insets, 0, 0);
container.add(component, gbc);
}