有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在JavaSwing中将arraylist显示为单独的JLabel?

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

   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);
            }

共 (1) 个答案

  1. # 1 楼答案

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

    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