Java GUI durch variable Größe einer Map anpassen

Steini5298

Neues Mitglied
Hallo,
im Moment beschäftige ich mich damit ein kleines Monitoring Tool für unsere aktiven Geräte zu entwickeln. Leider bereitet mir die GUI ein bisschen Kopfzerbrechen.

Im Moment habe ich eine Map die den Namen und die Mac enthält. Durch ein erstelltes EntrySet lese ich die einzelnen Paare in einer "for" aus und gebe sie auf der GUI aus. Leider ist die Formatierung bzw. der Aufbau der GUI so nicht wirklich schön.

Daher meine Frage. Wisst ihr zufällig was ich für diesen Anwendungsfall nutzen könnte, damit 1. die GUI schön Strukturiert ist bzw jeder Name + Mac in einer Zeile steht und 2. es dann egal ist wie groß die Map noch wird?

Schon mal vielen Dank im Vorraus.

Gruß
Steini5298
 
Java:
import java.awt.BorderLayout;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;

public class Demo extends JFrame {
  
    private static final long serialVersionUID = 1L;
  
    private DefaultListModel<Unit> units;
  
    class Unit {
      
        private String name;
        private String adress;
      
        public Unit(String name, String adress) {
            this.name = name;
            this.adress = adress;
        }

        @Override
        public String toString() {
            return name + " (" + adress + ")";
        }
      
    }

    public Demo() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("Demo");
      
        setLayout(new BorderLayout());
      
        JButton addButton = new JButton("+");
        addButton.addActionListener(e -> {
            int index = units.getSize();
          
            units.addElement(new Unit("Unit" + index, index + "." + index));
        });
        add(addButton, BorderLayout.NORTH);
      
        units = new DefaultListModel<>();
        JList<Unit> unitList = new JList<>(units);
        JScrollPane listScrollPane = new JScrollPane(unitList);
        add(listScrollPane, BorderLayout.CENTER);
      
        pack();
    }
  
    public static void main(String[] args) {
        new Demo().setVisible(true);
    }
  
}
 

Neue Themen


Zurück
Oben