Moin,
bin gerade dabei eine kleine Übersicht für Festplattenspeicher zuprogrammieren. Bin neu in der GUI-Programmierung in Java.
HauptPanel wird auf einem JScrollPane geadded.
Beim Erstellen des HauptPanels werden kleinere Panels für die jeweiligen Server erstellt und hinzugefügt.
Im Panel wird nun nacheinander ProgressBar und Labels geadded.
Nun möchte ich das gesamte HauptPanel + den Inhalt (Progressbar und die Labels) mit einem Button-Klick aktuallisieren.
Leider hab ich nach etlichen Versuchen mit repaint() und validate(); kein weiteren Lösungsvorschlag übrig.
Ich hoffe jemand hier kann mir weiterhelfen.
bin gerade dabei eine kleine Übersicht für Festplattenspeicher zuprogrammieren. Bin neu in der GUI-Programmierung in Java.
HauptPanel wird auf einem JScrollPane geadded.
Beim Erstellen des HauptPanels werden kleinere Panels für die jeweiligen Server erstellt und hinzugefügt.
Im Panel wird nun nacheinander ProgressBar und Labels geadded.
Nun möchte ich das gesamte HauptPanel + den Inhalt (Progressbar und die Labels) mit einem Button-Klick aktuallisieren.
Leider hab ich nach etlichen Versuchen mit repaint() und validate(); kein weiteren Lösungsvorschlag übrig.
Ich hoffe jemand hier kann mir weiterhelfen.
Java:
private JScrollPane getDiskSpaceScPane()
{
if(diskspaceScPane == null)
{
diskspaceScPane = new JScrollPane(getDiskSpacePanel());
diskspaceScPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
diskspaceScPane.setPreferredSize(new Dimension(250,800));
}
return diskspaceScPane;
}
// HauptPanel
private JPanel getDiskSpacePanel()
{
diskspacePanel = new JPanel();
diskspacePanel.setBorder(BorderFactory.createTitledBorder("Server-Speicher"));
diskspacePanel.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.FIRST_LINE_START;
for(int i = 0; i < serverList.size(); i++)
{
gbc.gridy = i;
// für jeden Server ein eigenes "Mini"-Panel
diskspacePanel.add(getDiskPanel(serverList.get(i)), gbc);
}
return diskspacePanel;
}
// JPanel für jeden Server
private JPanel getDiskPanel(String name)
{
diskPanel = new JPanel();
diskPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createBevelBorder(1), name));
diskPanel.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints.VERTICAL;
for(int i = 0, progressPos = 0, labelPos = 1; i < get_disk_usage(name).size(); i++, progressPos+=2, labelPos+=2)
{
// partitionLetter, valueInPercent, totalSpace, freeSpace werden hier gesetzt
gbc.gridx = 0;
gbc.gridy = progressPos;
gbc.insets = new Insets(0, 0, 0, 10);
diskPanel.add(getDiskPartitionLabel(partitionLetter), gbc);
gbc.gridx = 1;
gbc.gridy = progressPos;
gbc.insets = new Insets(0, 0, 0, 0);
diskPanel.add(getProgressBar(valueInPercent), gbc);
gbc.gridx = 1;
gbc.gridy = labelPos;
gbc.insets = new Insets(0, 0, 10, 0);
diskPanel.add(getDiskValueStatusLabel(totalSpace, freeSpace), gbc);
}
return diskPanel;
}
private JProgressBar getProgressBar(int value)
{
progressBar = new JProgressBar();
progressBar.setValue(value);
progressBar.setString(Integer.toString(value)+"%");
progressBar.setStringPainted(true);
progressBar.setPreferredSize(new Dimension(100,25));
return progressBar;
}
private JLabel getDiskPartitionLabel(String diskPartition)
{
diskPartitionLabel = new JLabel(diskPartition);
return diskPartitionLabel;
}
private JLabel getDiskValueStatusLabel(int totalSpace, int freeSpace)
{
String text = freeSpace+" GB frei von "+totalSpace+" GB";
diskValueStatusLabel = new JLabel(text);
return diskValueStatusLabel;
}
private void refreshServerDiskSpace()
{
/*Hier soll das aktuallisieren des GUI stehen*/
}