Swing Liste von Daten auf JFrame

prisma

Neues Mitglied
Hallo,

ich habe nicht seit ca. 4 Wochen durch diverse Java-Bücher (u.a. "Java ist auch eine Insel") durchgekämpft und mit NetBeans vertraut gemacht. (Hintergrund: Ich stelle meine Anwendung von Visual Basic 6 auf Java um)

Mein aktuelles Problem ist, dass ich eine Anwendung schreiben will, die auch eine graphische Ausgabe braucht. Als Beispiel dafür wie das aussieht habe ich eine Grafik angehängt.

Wie kriege ich die Datenzeilen (in den unteren 2/3 des Bildes) hin? Gibt es dafür wie in VB6 eine Art von Label-Feld ? Mit JTabelle krieg ich es einfach nicht hin oder versuche es zu kompliziert.
Die einzelnen Datenfelder werden erst nach Start des Programms aus Daten gefüllt, die ich aus externen Dateien einlese. Bei der weiteren Ausführung werden die Daten teilweise geändert.

Bin für jeden Tip dankbar !

pri
 

Semox

Bekanntes Mitglied
Hallo prisma

Ich vermute, daß Du mit dem BoxLayout das eigentlich ganz gut lösen könntest. Ein passendes Tutorium findest Du hier:

BoyLayout Tutorial

Das GridLayout bietet auch gute Steuerung von einzelnen Abständen...

Hast Du auch schon den GUI Designer von Netbeans genutzt? Spart ne Menge Arbeit...

Viele Grüße
Semo
 
Zuletzt bearbeitet:

Landei

Top Contributor
JTable ist schon die richtige Klasse, aber nicht wirklich anfängerfreundlich. Der Trick ist, dass man ein geeignetes TableModel braucht, und das heißt meistens: Selbst eins schreiben. Das ist einfacher, als es sich anhört, denn AbstractTableModel als Basisklasse nimmt einem schon eine Menge Arbeit ab.

Die absolut beste Quelle, wie man sowas macht, sind die Tutorials von Sun, in deinem Fall How to Use Tables (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)

Also: Definiere erst einmal ganz genau, was deine JTable können muss. Dann überlege, wie man die Daten am besten intern hält (meistens als Liste, aber auch Map u.s.w. ist möglich. Wenn es Schwierigkeiten damit gibt, kann dir sicher im Forum geholfen werden. Den BoxLayout-Vorschlag meines Vorredners halte ich zwar für kreativ und umsetzbar, aber es ist eben nicht das Standardverhalten, dass man von einer Java-Anwendung erwartet. Und JTable hat soviel nützlichen Krams schon dabei (Sortierung, Spalten verschieben...), dass man nur aus wirklich guten Gründen darauf verzichten sollte.
 

prisma

Neues Mitglied
Vielen Dank für Eure Antworten !

Das Tutorial bei Java (How to use Tables) hab ich jetzt schon mehrfach durchgelesen, verstehe jedoch noch ein paar Sachen nicht:

z.B. Wenn man die Table und das Model wie beschrieben dort anlegt, wie kann ich dann die Daten in der Tabelle von aussen ändern, damit meine ich nicht per Edit auf dem Bildschirm ? Die Tabelle ist nicht bekannt ausserhalb...
Ich möchte die Daten wie gesagt erst nach und nach in die Tabelle einfüllen lassen durch externe Daten, komme aber nicht an die Zellen ran.

Was mache ich falsch ?

pri
 

Landei

Top Contributor
Du brauchst nicht die Tabelle, du brauchst das Model.

Ich lege normalerweise da, wo ich das ganze zusammenbastle, das Model als Membervariable an, damit ich bequem darauf zugreifen kann. Man kann sich das Model natürlich auch von der JTable zurückgeben lassen, muss dann aber immer casten. Eine andere Variante wäre, eine Unterklasse von JTable zu schreiben, die dein Model bereits "kennt", aber das halte ich OO-technisch für eher unschön.
 

Landei

Top Contributor
Hier mal ein kleines Beispiel, in der eine Tabelle "von außen" vollläuft:

Java:
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.*;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author Gronau
 */
public class TableTest {

    private static class MyModel extends AbstractTableModel {
        private List<Date> list = new ArrayList<Date>();
        public int getRowCount() { return list.size(); }
        public int getColumnCount() { return 6; }
        public Object getValueAt(int rowIndex, int columnIndex) {
            Date date = list.get(rowIndex);
            switch(columnIndex) {
                case 0: return date.getYear() + 1900;
                case 1: return date.getMonth() + 1;
                case 2: return date.getDate();
                case 3: return date.getHours();
                case 4: return date.getMinutes();
                case 5: return date.getSeconds();
                default: return "WTF!?";
            }
        }
        public void addRow(Date date) {
            list.add(date);
            this.fireTableRowsInserted(list.size(), list.size());
        }
        @Override
        public String getColumnName(int column) {
            return new String[]{"Year","Month","Day","Hour","Minute","Second"}[column];
        }
    }

    private static MyModel model = new MyModel();

    private static void externProcess() {
        model.addRow(new Date());
    }

    private static void tableFrame() {
      JFrame frame = new JFrame();
      frame.setSize(300,300);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.getContentPane().add(new JScrollPane(new JTable(model)));
      frame.setVisible(true);
    }

    public static void main(String... args) {
        tableFrame();
        
        //simulate external processes adding data
        new Timer().schedule(new TimerTask(){
            @Override  public void run() { externProcess(); }
        }, 2000, 2000);
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Swing Liste von Daten anzeigen AWT, Swing, JavaFX & SWT 4
richis-fragen Wie kann man den RowSorter dazu bringen die ursprünglich liste wieder anzuzeigen. AWT, Swing, JavaFX & SWT 28
M Vokabelprogram - Schleife für Liste soll schrittweise durchlaufen werden AWT, Swing, JavaFX & SWT 3
B JavaFX Prüfen ob ein Objekt sich mehrmals in einer Liste befindet AWT, Swing, JavaFX & SWT 5
M Synchronisierte Liste umdrehen AWT, Swing, JavaFX & SWT 1
izoards Liste filtern... AWT, Swing, JavaFX & SWT 2
F Swing Scrollbare Liste von JButton AWT, Swing, JavaFX & SWT 4
T Swing Objekte in Liste AWT, Swing, JavaFX & SWT 2
E Swing Liste in Scrollpane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
S Swing jScrollPane - pro Eintrag der Liste, die jCheckBoxes Speichern die in dem Eintrag aktiviert wurden AWT, Swing, JavaFX & SWT 2
C Liste - ListView wird nicht angezeigt AWT, Swing, JavaFX & SWT 15
G Swing ComboBox: Auswahl eines Items der Liste durch Eingabe eines Buchstabens AWT, Swing, JavaFX & SWT 3
R Liste mit Bildern AWT, Swing, JavaFX & SWT 3
P Liste mit Datenobjekt synchron halten AWT, Swing, JavaFX & SWT 2
S Liste von JPanels mit festen Höhen AWT, Swing, JavaFX & SWT 3
L Schöne Ausgabe in Form einer Liste AWT, Swing, JavaFX & SWT 5
1 Liste mit Objekten Füllen AWT, Swing, JavaFX & SWT 7
TheWhiteShadow Swing Buttons in Liste AWT, Swing, JavaFX & SWT 7
D Jtable mit einer Liste befüllen AWT, Swing, JavaFX & SWT 3
P Liste mit Icons und mehreren Spalten AWT, Swing, JavaFX & SWT 7
P Text-Vorschläge für JTextField aus ner Liste laden AWT, Swing, JavaFX & SWT 8
H Puzzle - Listen erstellen, array & liste vergleichen AWT, Swing, JavaFX & SWT 28
A Swing Liste von komplexen Components AWT, Swing, JavaFX & SWT 2
A Programmieren einer Agenda mit einer Liste (als Applet und .txt zum Speichern) AWT, Swing, JavaFX & SWT 7
S JTree mit Liste zur Speicherung AWT, Swing, JavaFX & SWT 3
C Checkbox in Liste deaktivieren und paintComponent explizit aufrufen AWT, Swing, JavaFX & SWT 12
G Swing Komponente gesucht (Textfeld mit Liste) AWT, Swing, JavaFX & SWT 2
M Liste mittels SwingWorker füllen klappt nicht AWT, Swing, JavaFX & SWT 10
D Liste mit Tabellenkopf, Sortierung usw. AWT, Swing, JavaFX & SWT 2
S Listener der mich informiert wann immer einer Liste ein Element hinzugefuegt wird? AWT, Swing, JavaFX & SWT 4
K Strings aus jTextArea in Liste oder Tabelle übertragen- wie? AWT, Swing, JavaFX & SWT 4
G JList und ein neues Element oben in der Liste einfügen AWT, Swing, JavaFX & SWT 4
J Eine Spezielle (JTable) Liste, wie kann ich das machen? AWT, Swing, JavaFX & SWT 3
L Objekte in Liste oder ähnliches anzeigen AWT, Swing, JavaFX & SWT 3
M Scrollbare Label-Liste AWT, Swing, JavaFX & SWT 6
G Liste einer JCombobox bekommen AWT, Swing, JavaFX & SWT 2
G Dynamische Menüs mit Liste von MRU Dateien AWT, Swing, JavaFX & SWT 2
G Liste in JTable einfügen AWT, Swing, JavaFX & SWT 4
zilti Liste in Swing? AWT, Swing, JavaFX & SWT 5
DEvent Je nach Auswahl in Liste entsprechende Input-Elemente anzeig AWT, Swing, JavaFX & SWT 2
B SWT - Buttons mit zusätzlicher Liste AWT, Swing, JavaFX & SWT 6
T die Liste der Elemente aus einer JComboBox auslesen AWT, Swing, JavaFX & SWT 6
G Jtable mittels Liste füllen AWT, Swing, JavaFX & SWT 3
J Liste aktualisieren oder GUI schließen? HILFE *verzweifelt* AWT, Swing, JavaFX & SWT 2
M JList - Auf ButtonDruck Liste anzeigen AWT, Swing, JavaFX & SWT 12
D Wie Darstellung / Layout als Liste AWT, Swing, JavaFX & SWT 2
P GetSelectetItem() erkennt Variable aus Liste nicht. AWT, Swing, JavaFX & SWT 2
H Liste von Font Sizes und Colors AWT, Swing, JavaFX & SWT 4
H JTabel - RowFilter Daten für Berechnung filtern AWT, Swing, JavaFX & SWT 6
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
W Nullpointer Exception beim übertragen von Daten von Scene zu Scene AWT, Swing, JavaFX & SWT 6
W Daten von Controller zu Controller übertragen AWT, Swing, JavaFX & SWT 7
D Columns unabhängig voneinander mit Daten füllen JavaFx AWT, Swing, JavaFX & SWT 1
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
T Anbinden der Tabelle an die Daten AWT, Swing, JavaFX & SWT 5
F JavaFX Tabelle mit Daten füllen AWT, Swing, JavaFX & SWT 9
A JavaFX Daten in eine HTML-Table mit JS schreiben AWT, Swing, JavaFX & SWT 3
ralfb1105 JavaFX Daten zwischen Controllern austauschen- neue Frage AWT, Swing, JavaFX & SWT 7
ralfb1105 JavaFX Daten zwischen Controller "austauschen" AWT, Swing, JavaFX & SWT 65
B AWT Bot um Daten auf Website einzugeben und die Antwort zu bekommen AWT, Swing, JavaFX & SWT 2
L Daten bearbeiten ohne GUI zu blockieren - daten haltung/zurück geben AWT, Swing, JavaFX & SWT 15
ralfb1105 Swing JComboBox update der Daten AWT, Swing, JavaFX & SWT 8
ralfb1105 Swing Dynamischer Graph zum anzeigen Perfomance Daten AWT, Swing, JavaFX & SWT 35
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
K TreeTableView (cellFactory) - wie Daten in Spalten einfügen AWT, Swing, JavaFX & SWT 0
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
J TableView Daten werden nicht ausgegeben AWT, Swing, JavaFX & SWT 9
A Swing Wie Daten in der Form speichern? Array oder ArrayList AWT, Swing, JavaFX & SWT 2
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
T JavaFX Model Daten übergeben AWT, Swing, JavaFX & SWT 4
D Swing Größe einer JComboBox im GridBagLayout aufgrund der maximalen Länge der enthaltenen Daten AWT, Swing, JavaFX & SWT 7
J JavaFX Tableview Daten hinzufügen aus anderer Klasse AWT, Swing, JavaFX & SWT 7
J Tableview Daten hinzufügen und aktualisieren AWT, Swing, JavaFX & SWT 5
S AWT Daten über TextField und Button in array speichern AWT, Swing, JavaFX & SWT 5
G Event Handling TableView daten in ein neues Fenster herauslesen? AWT, Swing, JavaFX & SWT 3
S JavaFX (Best Practise) Daten zwischen Controllern austauschen AWT, Swing, JavaFX & SWT 1
thet1983 JavaFX TableView Objekt Daten anzeige AWT, Swing, JavaFX & SWT 2
L JavaFX Verzögerung beim Laden von Daten AWT, Swing, JavaFX & SWT 6
L Daten in neuem Fenster AWT, Swing, JavaFX & SWT 2
Tort-E JavaFX Daten an WebView Komponente AWT, Swing, JavaFX & SWT 1
I JTable: Doppelklick auf Table soll neues Fenster öffnen und Daten aus JTable anzeigen AWT, Swing, JavaFX & SWT 4
S JTable Daten aus Array AWT, Swing, JavaFX & SWT 9
M Java FX Daten an Controller übergeben AWT, Swing, JavaFX & SWT 3
S JList ist leer, aber DefaultListModel hat die Daten? AWT, Swing, JavaFX & SWT 9
M JavaFX Von FXML-Controllerdatei Daten zurückgeben AWT, Swing, JavaFX & SWT 6
F JavaFX Daten aus Tabelle in ComboBox AWT, Swing, JavaFX & SWT 9
B Swing JTable mit Daten - Reihen-Größe anpassen AWT, Swing, JavaFX & SWT 0
D Applet GWT speichert Daten nicht in Datenbank AWT, Swing, JavaFX & SWT 2
S SWT In Listen den Einträgen Daten zuordnen AWT, Swing, JavaFX & SWT 2
T SWT Table (mit Spinner Spalte) Daten auslesen AWT, Swing, JavaFX & SWT 4
F Swing JTable: Daten voreinstellen AWT, Swing, JavaFX & SWT 4
B Daten in eine JTable schreiben AWT, Swing, JavaFX & SWT 3
H Swing JfreeChart aktualisieren - mit daten aus thread AWT, Swing, JavaFX & SWT 3
J valueChanged()-Methode liefert unbrauchbare Daten AWT, Swing, JavaFX & SWT 4
B Datenübergabe zwischen Tabs und Daten speichern AWT, Swing, JavaFX & SWT 2
D SWT TreeViewer: Daten aus Model gelöscht... trotzdem noch im Baum AWT, Swing, JavaFX & SWT 4
D Daten von JDialog an JTable in JFrame übergeben AWT, Swing, JavaFX & SWT 7
O JTable zeigt die alte Daten wieder AWT, Swing, JavaFX & SWT 23
H JTable zeigt keine Daten an AWT, Swing, JavaFX & SWT 5
M Swing Daten von JPanel zu JFrame senden AWT, Swing, JavaFX & SWT 13

Ähnliche Java Themen

Neue Themen


Oben