【问题标题】:How to show arraylist as a seperate jlabels in java swing?java - 如何在java swing中将arraylist显示为单独的jlabels?
【发布时间】:2018-06-03 01:52:51
【问题描述】:

我有一个城市名称的数组列表,我想将它们显示为自下而上的 jlabels。我该怎么做?

   ArrayList<String> cityNames = new ArrayList<>(columnCount); 

                while(resultSet.next()){
                    int i = 1;
                       while(i <= columnCount) {
                           cityNames.add(resultSet.getString(i++));
                       }            
                }

                //Loop through cityNames as seperate Jlabels
            for(String city : cityNames){
                cityLabel.setText(city);
            }

【问题讨论】:

  • 如果为每个字符串创建一个JLabel 会发生什么?这似乎是一个简单的解决方案
  • 然后输出结束值。
  • 什么“结束”值?
  • 我已经编辑了代码。如果你是这个意思。它只输出最后一个值。
  • 如果您尝试我最初的评论,为每个字符串创建一个JLabel 怎么办? (for(String city : cityNames) panel.add(new JLabel(city));)

标签: java swing arraylist


【解决方案1】:

创建多个JLabels 并将它们添加到面板中

JPanel panel = [...];
ArrayList<String> cityNames = [...];

for(String city : cityNames)
    panel.add(new JLabel(city));

如果您稍后需要对它们进行操作,请将它们也添加到 List

JPanel panel = [...];
ArrayList<String> cityNames = [...];
List<JLabel> cityLabels = new ArrayList<JLabel>();

for(String city : cityNames)
{
    JLabel label = new JLabel(city);
    cityLabels.add(label);
    panel.add(label);
}

如果您只想将所有城市名称集中在一个JLabel (can be on multiple lines)

ArrayList<String> cityNames = [...];

String cities = "";
for(String city : cityNames)
    cities += ", " + city; //or use "<br>" for separate lines
cities = cities.substring(2); //remove the first ", "

JLabel cityLabel = new JLabel(cities); //add this to your rendering panel

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多