WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 21.09.2005, 12:51   #1
Frankster
Veteran
 
Registriert seit: 13.07.2002
Alter: 45
Beiträge: 242


Standard

Das ganze Funkt so.
Alle 5 Sekunden werden in einer anderen Klasse (KLASSE B) Methoden aufgerufen und in einer Methode dieser KLASSE B ist der Interface-Aufruf. Dieses Interface ruft in der TIMERDATEN Klasse die Methode
public void getHashmap(HashMap map) auf und übergibt ihr die neue HashMap. Somit hat die TIMERDATEN Klasse die neue Hashmap und soll auch die JTable aktualisieren.

So sieht der komplette Code meiner GUI Klasse aus

Code:
package dboxwatcher2_0;

import java.awt.*;

import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import java.awt.event.*;
import javax.swing.table.*;
import java.util.*;

/**
 * 

Überschrift: </p>
 *
 * 

Beschreibung: </p>
 *
 * 

Copyright: Copyright (c) 2005</p>
 *
 * 

Organisation: </p>
 *
 * @author unbekannt
 * @version 1.0
 */
public class TimerDaten extends JFrame implements DBoxWatcherInterface  {
    FlowLayout borderLayout1 = new FlowLayout();
    HashMap map = new HashMap();
    JTable timerTable;
    DBox getMap = new DBox();
    MyTableModel x;
    TableSorter sorter;
    JScrollPane scrollPane;
    JButton button1 = new JButton("Klick mich");

    public TimerDaten() {
        try {
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
        this.map = getMap.map;


        x = new MyTableModel();
        sorter = new TableSorter(new MyTableModel());
        timerTable = new JTable(sorter);
        sorter.setTableHeader(timerTable.getTableHeader());
        sorter.setSortingStatus(0,1);
        timerTable.setPreferredScrollableViewportSize(new Dimension(500, 70));
        scrollPane = new JScrollPane(timerTable);
        getContentPane().setLayout(new FlowLayout());
        this.getContentPane().add(scrollPane);
        x.spaltenBreite();

    }

    public void getHashmap(HashMap map2) {
        this.map = map2;
        x.tableUpdate();
    }

    class MyTableModel extends AbstractTableModel{
        private String[] spaltenNamen = {"Nr.", "Wdh.", "Start-Zeit","Stop-Zeit","Sender"};
        private Object[][] zeilen;
        public MyTableModel(){
            zeilen = new Object[map.size()][5];
            Object[] zeilenKeys= map.keySet().toArray();
            for(int zeile=0; zeile<map.size(); zeile++){
                zeilen[zeile][0] = ((DboxTimerDaten)(map.get(zeilenKeys[zeile]))).getEventId();
                zeilen[zeile][1] = ((DboxTimerDaten)(map.get(zeilenKeys[zeile]))).getEventRepeat();
                zeilen[zeile][2] = ((DboxTimerDaten)(map.get(zeilenKeys[zeile]))).getAlarmTime();
                zeilen[zeile][3] = ((DboxTimerDaten)(map.get(zeilenKeys[zeile]))).getStopTime();
                zeilen[zeile][4] = ((DboxTimerDaten)(map.get(zeilenKeys[zeile]))).getData();
            }
        }

        public int getColumnCount() {
            //System.out.println("Spalten" + spaltenNamen.length);
            return spaltenNamen.length;
        }

        public void tableUpdate() {
            sorter.fireTableDataChanged();
            fireTableDataChanged();
            ((AbstractTableModel)timerTable.getModel()).fireTableDataChanged();
            fireTableStructureChanged();
            System.out.println(timerTable.getModel());
            repaint();
        }

        public int getRowCount() {
            //System.out.println("Zeilen" + zeilen.length);
            return zeilen.length;
        }

        public String getColumnName(int col) {
            //System.out.println(spaltenNamen[col]);
            return spaltenNamen[col];
        }

        public Object getValueAt(int row, int col) {
            this.zeilen = new Object[map.size()][5];
            Object[] zeilenKeys = map.keySet().toArray();
            for (int zeile = 0; zeile < map.size(); zeile++) {
                zeilen[zeile][0] = ((DboxTimerDaten) (map.get(zeilenKeys[zeile]))).
                                   getEventId();
                zeilen[zeile][1] = ((DboxTimerDaten) (map.get(zeilenKeys[zeile]))).
                                   getEventRepeat();
                zeilen[zeile][2] = ((DboxTimerDaten) (map.get(zeilenKeys[zeile]))).
                                   getAlarmTime();
                zeilen[zeile][3] = ((DboxTimerDaten) (map.get(zeilenKeys[zeile]))).
                                   getStopTime();
                zeilen[zeile][4] = ((DboxTimerDaten) (map.get(zeilenKeys[zeile]))).
                                   getData();
            }
            return zeilen[row][col];
        }

        public void spaltenBreite() {
            TableColumn column = null;
            for (int i = 0; i < getColumnCount(); i++) {
                column = timerTable.getColumnModel().getColumn(i);
                if (i == 0) {
                     column.setPreferredWidth(40);
                     column.setMaxWidth(50);
                     column.setMinWidth(25);
                 }
                 if (i==1) {
                     column.setPreferredWidth(40);
                     column.setMaxWidth(50);
                     column.setMinWidth(25);

                 }
             }
         }
    }
}
Frankster ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:11 Uhr.


Powered by vBulletin® Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag