Bei JTable eine bestimmte Zelle färben

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo!

Ich habe mir mit Hilfe einer JTable so eine Art Terminplan erstellt. Dabei sollte es im Menü eine Möglichkeit geben, die Farbe der Selektierten Zelle zu ändern. Wenn man darauf klickt, wird der ActionListener informiert und fragt von der JTable die Koordinaten der Markierten Zelle ab. Jetzt möchte ich meinem CellRenderer (selbst geschrieben) informieren, dass er diese bestimmte Zelle einfärben soll. Wie mache ich das?
Ich habe schon folgendes versucht:
Im CellRenderer eine Methode setColor(Color c) geschrieben, die die Zellfarbe ändern soll. Wenn ich jetzt aber folgendes mache:
Code:
		JMenuItem Rot=new JMenuItem("Rot");
		Rot.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				TableCellRenderer tcr=Plan.getCellRenderer(Plan.getSelectedRow(),Plan.getSelectedColumn());
                                tcr.setColor(Color.red);
			}
		});
erhalte ich in der Zeile 7 (tcr.setColor(Color.red)) eine Fehlermeldung. Woran liegt das?
Gibt es eventuell noch eine bessere Lösung?

(Auch in der Bordsuche habe ich nichts entsprechendes gefunden)

Hier ist mein TableCellRenderer:
Code:
import javax.swing.table.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;

public class CellRenderer extends JLabel implements TableCellRenderer
{
	public Component getTableCellRendererComponent
	(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column)
	{
		this.setOpaque(true);
		Border b = BorderFactory.createEmptyBorder(1, 1, 1, 1);
	    this.setBorder(b);
	    this.setForeground(table.getForeground());
        this.setBackground(table.getBackground());
	    if (hasFocus)
	    {
	    	this.setBackground(Color.blue);
	    	this.setForeground(Color.red);
	    }
	    else if (isSelected)
	    {
	    	this.setBackground(Color.blue);
     	}
		return this;
	}
	public void setColor(Color c)
	{
		this.setForeground(c);
	}
}

Bitte helft mir!
 

m@nu

Bekanntes Mitglied
erst mal: was für eine fehlermeldung erhälst du?

zweitens: die farbänderung (resp. die info, dass sich was geändert hat) sollte vom model her kommen. :meld:
setz also im ActionListener nicht die hintergrundfarbe des renderers auf eine farbe, sondern aktualisier' die daten des entsprechenden elements deines models.
anschliessend rufst du repaint() auf damit deine tabelle neu gezeichnet wird. so wird wiederum dein renderer aufgerufen, welcher entsprechend der neuen daten weis, wie er die zelle zeichnen muss.
 
G

Guest

Gast
1.Ich erhalte folgende Fehlermeldung:
cannot find symbol method setColor(java.awt.Color)


2.
sondern aktualisier' die daten des entsprechenden elements deines models.
Wie meinst du das? (ich versteh noch nicht wirklich viel davon) :oops:

Kannst du mir vielleicht ein paar Zeilen Tippen? :D

Das hier ist mein TableModel:
Code:
import javax.swing.table.*;

public class TableModel extends AbstractTableModel
{
	static int Rows=10;
	static int Columns=5;
	static Object data[][]=new Object[100][25];
	public Object getValueAt(int row, int column)
	{
		return data[row][column];
	}
	public void setValueAt(Object obj,int row, int column)
	{
		data[row][column]=obj;
	}
	public boolean isCellEditable(int row, int column)
	{
		return true;
	}
	public int getColumnCount()
	{
		return Columns;
	}
	public int getRowCount()
	{
		return Rows;
	}
	public void addRow()
	{
		if(Rows<100)
		Rows++;
		fireTableRowsInserted(1,1);
	}
	public void removeRow()
	{
		if(Rows>0)
		Rows--;
		fireTableRowsDeleted(1,1);
	}
	public void addColumn()
	{
		if(Columns<25)
		Columns++;
		fireTableStructureChanged();
	}
	public void removeColumn()
	{
		if(Columns>0)
		Columns--;
		fireTableStructureChanged();
	}
}
 

norman

Top Contributor
ich schätze du musst auf CellRenderer Casten
Code:
 ((CellRenderer)tcr).setColor(Color.RED);
 

norman

Top Contributor
m@nu hat gesagt.:
zweitens: die farbänderung (resp. die info, dass sich was geändert hat) sollte vom model her kommen. :meld:

nicht unbedingt. es ist ja garnicht klar, warum da die farbe geändert werden soll. vllt soll nur was hervorgehoben/markiert werden. das geht das model nix an..
 

m@nu

Bekanntes Mitglied
@norman: na, meiner meinung schon... is ne änderung im datenbestand :)

ich nehm' jetzt mal an, das "auf rot setzen" soll sowas wie ne markierung für deinen termin sein... ne kategorisierung oder sowas, nicht?


ich werd dir morgen bei gelegenheit ein kleines snippet schreiben, wie ich mir das ganze vorstelle... heute bin ich zu kaputt vom arbeiten ;)

ps. wie wärs mit nem useraccount statt nem "Gast"? :)
 

m@nu

Bekanntes Mitglied
morgen zusammen

@Gast: reicht dir das beispiel von André Uhres oder brauchst du doch noch ein anderes beispiel?
 
G

Guest

Gast
@ m@nu: Wenn es dir nicht zu viel arbeit macht, wäre ich dir sehr dankbar, wenn du mir noch ein zweites (kleines) Beispiel schreibst. Ich habe jetzt das von André angeschaut, habe aber keine Ahnung, wie ich das in mein Programm einbauen soll. Aber grundsätzlich ist die Funktion dieses Programms (Beispiel von André) schon das richtige.
(Bin halt noch ein Anfänger)

ich nehm' jetzt mal an, das "auf rot setzen" soll sowas wie ne markierung für deinen termin sein... ne kategorisierung oder sowas, nicht?

Ganz genau.
 

m@nu

Bekanntes Mitglied
so... hier mein beispiel (nicht so kurz geraten wie ich zuerst gedacht hab ggg)

File 1: TerminBean.java (dient zum speichern der daten)
Code:
import java.util.Date;

/*
 * Created on 26.04.2007
 */

/**
 * @author Manuel Alabor
 * @version 1.0
 */
public class TerminBean {

    public enum Flag {
        flagNONE, flagROT, flagGELB
    }
    
    // Members -----------------------------------------------------------------
    private Flag flag;
    private String text;
    private Date date;
    
    
    // Konstruktoren -----------------------------------------------------------
    public TerminBean(String text, Date date) {
        this(text, date, Flag.flagNONE);
    }
    
    public TerminBean(String text, Date date, Flag flag) {
        this.text = text;
        this.flag = flag;
        this.date = date;
    }
    
    
    // Getter- & Setter-Methoden -----------------------------------------------
    public Flag getFlag() {
        return flag;
    }
    public void setFlag(Flag flag) {
        this.flag = flag;
    }
    public String getText() {
        return text;
    }
    public void setText(String text) {
        this.text = text;
    }
    public Date getDate() {
        return date;
    }
    public void setDate(Date date) {
        this.date = date;
    }
    
}

File 2: TerminTableModel.java (Stellt die TerminBean-instanzen in einem tablemodel zur verfügung)
Code:
import java.util.ArrayList;

import javax.swing.table.AbstractTableModel;

/*
 * Created on 26.04.2007
 */

/**
 * @author Manuel Alabor
 * @version 1.0
 */
public class TerminTableModel extends AbstractTableModel {
    
    private ArrayList<TerminBean> data;
    
    public TerminTableModel(ArrayList<TerminBean> data) {
        this.data = data;
    }
    
    public int getColumnCount() {
        return 2;
    }
    
    public int getRowCount() {
        return data.size();
    }
    
    public Object getValueAt(int rowIndex, int columnIndex) {
        TerminBean bean = data.get(rowIndex);
        
        if(columnIndex == 0) return bean.getText();
        else if(columnIndex == 1) return bean.getDate();
        else return null;
    }
    
    public TerminBean getBean(int rowIndex) {
        return data.get(rowIndex);
    }

}

File 3: TerminFrame.java (macht ein gui und hat den entsprechenden renderer implementiert)
Code:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;

/*
 * Created on 26.04.2007
 */

/**
 * @author Manuel Alabor
 * @version 1.0
 */
public class TerminFrame extends JFrame {

    @SuppressWarnings("deprecation")
    public TerminFrame() {
        super("TerminTable");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocation(300,300);
        setSize(400,300);
        
        // Daten:
        ArrayList<TerminBean> data = new ArrayList<TerminBean>();
        data.add(new TerminBean("Test 1", new Date(2007,05,01)));
        data.add(new TerminBean("Test 2", new Date(2007,05,02), TerminBean.Flag.flagROT));
        data.add(new TerminBean("Test 3", new Date(2007,05,03)));
        data.add(new TerminBean("Test 4", new Date(2007,05,04)));
        final TerminTableModel model = new TerminTableModel(data);
        
        /* GUI: */
        JPanel gui = new JPanel(new BorderLayout());
        
        // Table
        final JTable table = new JTable(model);
        TerminCellRenderer renderer = new TerminCellRenderer();
        table.getColumnModel().getColumn(0).setCellRenderer(renderer);
        table.getColumnModel().getColumn(1).setCellRenderer(renderer);
        
        // Buttons:
        final JButton btnNone = new JButton("None");
        final JButton btnGelb = new JButton("Gelb");
        final JButton btnRot = new JButton("Rot");
        ActionListener buttonActionListener = new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if(table.getSelectedRow() > -1) {
                    TerminBean.Flag newFlag = TerminBean.Flag.flagNONE;
                    
                    if(e.getSource() == btnGelb) {
                        newFlag = TerminBean.Flag.flagGELB;
                    } else if(e.getSource() == btnRot) {
                        newFlag = TerminBean.Flag.flagROT;
                    }
                    
                    TerminBean selectedBean = model.getBean(table.getSelectedRow());
                    selectedBean.setFlag(newFlag);
                    table.repaint();
                } else {
                    System.out.println("Zuerst eine Zeile auswählen!");
                }
            }
        };
        btnNone.addActionListener(buttonActionListener);
        btnGelb.addActionListener(buttonActionListener);
        btnRot.addActionListener(buttonActionListener);
        
        JPanel buttons = new JPanel();
        buttons.add(btnNone);
        buttons.add(btnGelb);
        buttons.add(btnRot);
        
        
        // Zusammensetzen:
        gui.add(buttons, BorderLayout.NORTH);
        gui.add(new JScrollPane(table), BorderLayout.CENTER);
        setContentPane(gui);
    }
    
    private class TerminCellRenderer extends DefaultTableCellRenderer {
        private SimpleDateFormat format = new SimpleDateFormat("dd.MM.y");
        
        @Override
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
            
            // Falls hier ein Datum angezeigt werden soll, dieses formatieren:
            if(value instanceof Date) {
                setText(format.format(value));
            }
            
            // TerminBean holen & background setzen:
            TerminBean bean = ((TerminTableModel)table.getModel()).getBean(row);
            if(bean.getFlag() == TerminBean.Flag.flagROT) {
                setBackground(Color.red);
            } else if(bean.getFlag() == TerminBean.Flag.flagGELB) {
                setBackground(Color.yellow);
            } else {
                setBackground(table.getBackground());                
            }
            
            // Renderer zurückgeben:
            return TerminCellRenderer.this;
        }
    }
    
    // Testing-Code ------------------------------------------------------------
    public static void main(String[] args) {
        new TerminFrame().setVisible(true);
    }
    
    
}


vorallem im TerminFrame ist der GUI-erstellungscode nicht wirklich mustergültig. aber es funktioniert. :)
hoffe aber, dieser code verdeutlicht dir das zusammenspiel von model & renderer.
 

André Uhres

Top Contributor
Anonymous hat gesagt.:
..Ich habe jetzt das von André angeschaut, habe aber keine Ahnung, wie ich das in mein Programm einbauen soll...
Hier ist nochmal alles zusammengefasst, worauf es in meinem Beispiel ankommt.

Du braucht dazu keinen eigenen Renderer!
Du überschreibst einfach die Methode "prepareRenderer" von JTable genau wie unten angegeben.
Die Methode "colorButtonActionPerformed" kannst du auch genau so übernehmen.
"colorButtonActionPerformed" rufst du dann auf, um die selektierten Zellen mit "red" oder "white" zu markieren. Fertig!
Code:
...
public class Kreuz_Tabelle_1 extends JFrame{
...
    private HashMap<String, String> colorMap = new HashMap<String, String>();
    private final Color redSelected = new Color(255,150,150);
    public Kreuz_Tabelle_1() {
...
        table = new JTable() {
            public Component prepareRenderer(
                    final TableCellRenderer renderer, final int row, final int column) {
                Component c = super.prepareRenderer(renderer, row, column);
                String key = row+":"+column;
                c.setBackground(Color.white );
                boolean selected = isRowSelected(row) && isColumnSelected(column);
                if( selected ){
                    c.setBackground(Color.cyan);
                }
                String colorValue = colorMap.get(key);
                if( colorValue!=null ){
                    if( (colorValue).equals("red") ){
                        c.setBackground(Color.red);
                        if( selected ){
                            c.setBackground(redSelected);
                        }
                    }
                    if( (colorValue).equals("white") ) {
                        c.setBackground(Color.white);
                        if( selected ){
                            c.setBackground(Color.cyan);
                        }
                    }
                }
                return c;
            }
        };
...
    }
    private void colorButtonActionPerformed(final String color) {//Parameter: "red" oder "white"
        int[] row = table.getSelectedRows();
        int[] column = table.getSelectedColumns();
        for (int i = 0; i < row.length; i++) {
            for (int j = 0; j < column.length; j++) {
                String key = row[i]+":"+column[j];
                String value = table.getValueAt(row[i],column[j]).toString();
                colorMap.put(key, color);
            }
        }
        table.updateUI();
    }
...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Tastaturabfragen CTRL+t, CTRL+E bei eine JTable, bestehend aus JTextAteas AWT, Swing, JavaFX & SWT 4
B Daten in eine JTable schreiben AWT, Swing, JavaFX & SWT 3
P Swing Alle Zeilen einer Spalte (jTable) zusammen zählen und in eine eigene Zeile das Ergebnis schreiben. AWT, Swing, JavaFX & SWT 7
Meldanor Swing JTable - Eine neue Zeile vor einer bestehenden Einfügen AWT, Swing, JavaFX & SWT 2
J Zelle eine JTable ändern AWT, Swing, JavaFX & SWT 3
D JTable um eine Zeile erweitern AWT, Swing, JavaFX & SWT 4
S in JTable eine Zeile färben AWT, Swing, JavaFX & SWT 5
J Eine Spezielle (JTable) Liste, wie kann ich das machen? AWT, Swing, JavaFX & SWT 3
N JTable: Informiert werden, wenn User eine Zelle editiert hat AWT, Swing, JavaFX & SWT 2
lolkind unter JPanel eine JTable auf voller Größe anzeigen lassen? AWT, Swing, JavaFX & SWT 6
S Eine Zeile zu einer JTable hinzufügen wo Zelle selektiert is AWT, Swing, JavaFX & SWT 4
R JComboBox über ein AstractTableModel in eine JTable packen AWT, Swing, JavaFX & SWT 2
S JTable in eine JTextArea? AWT, Swing, JavaFX & SWT 29
A Ideen für eine Filterfunktion von JTable-Einträgen AWT, Swing, JavaFX & SWT 5
TRunKX Kann man ne JCOmboBox in eine JTAble einfügen AWT, Swing, JavaFX & SWT 10
C Dynamisches Zuweisen von Daten an eine JTable zur Laufzeit AWT, Swing, JavaFX & SWT 4
S Tooltip auf Kopf eine JTable? AWT, Swing, JavaFX & SWT 2
L In einer JTextArea eine JTable einfügen? AWT, Swing, JavaFX & SWT 12
R JTable: nur eine Zeile auswählen AWT, Swing, JavaFX & SWT 2
Student JTable - eine fixe Spalte, der Rest scrollbar AWT, Swing, JavaFX & SWT 18
I Swing JTable zeichnet kein vertical Grid AWT, Swing, JavaFX & SWT 6
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
S HPRO und UPRO gemeinsame JTABLE gemeinsamer RENDERER ? AWT, Swing, JavaFX & SWT 1
F Swing JTable - MultiHeader inkl. Eingabemöglichkeit AWT, Swing, JavaFX & SWT 1
S JTable - Feldinhalte anzeigen AWT, Swing, JavaFX & SWT 15
D Swing JTable Spaltenbreite AWT, Swing, JavaFX & SWT 1
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
G jTable - getSelectedRow() AWT, Swing, JavaFX & SWT 3
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
P Checkboxes in JTable nicht editable AWT, Swing, JavaFX & SWT 9
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
izoards JTable in CSV File schreiben... AWT, Swing, JavaFX & SWT 23
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
I JTable, DefaultTableModel, zwei Zahlen multiplizieren. AWT, Swing, JavaFX & SWT 26
M JTABLE / wie oft wurde gewürfelt. AWT, Swing, JavaFX & SWT 1
F JTable vergrößern AWT, Swing, JavaFX & SWT 2
H JTable: Diverse NullPointer-Exceptions zur Laufzeit AWT, Swing, JavaFX & SWT 3
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
HoT Einzelne Zelle in JTable Rahmen unten setzen AWT, Swing, JavaFX & SWT 24
B JTable Zellen zusammenfügen AWT, Swing, JavaFX & SWT 3
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
H JTable im JSplitPane darstellen AWT, Swing, JavaFX & SWT 2
MadMax2506 Swing JTable lädt sehr lange AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
R Swing JTable und Spaltenausrichtung AWT, Swing, JavaFX & SWT 8
G JTable füllen AWT, Swing, JavaFX & SWT 1
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
J Datensatz in jTable ausgeben AWT, Swing, JavaFX & SWT 3
M Swing Automatischer Editorstart in JTable-Zelle AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing JTable aktualisieren AWT, Swing, JavaFX & SWT 5
adiko01 JTable: Nur markierte Zeilen aus der Tabelle in CSV exportiern AWT, Swing, JavaFX & SWT 9
M JTable.setDefaultRenderer(...) greift nicht AWT, Swing, JavaFX & SWT 0
J JTable: Eingabe in Tabellenzelle korrigieren AWT, Swing, JavaFX & SWT 4
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
D JTable nach INSERT aktualisieren /refreshen AWT, Swing, JavaFX & SWT 1
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
H Swing Jtable extra spalte AWT, Swing, JavaFX & SWT 6
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
S Swing Mal wieder JTable Ansicht aktualisieren AWT, Swing, JavaFX & SWT 10
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
VfL_Freak Swing Einzelne Zeile in jTable selektieren klappt nicht AWT, Swing, JavaFX & SWT 7
N AWT jTable CellRenderer AWT, Swing, JavaFX & SWT 6
T Swing JTable valueChanged datensatz löschen AWT, Swing, JavaFX & SWT 1
0 Swing JTable aus anderer Klasse updaten AWT, Swing, JavaFX & SWT 5
S Jtable defaultRenderer wohin damit ? AWT, Swing, JavaFX & SWT 23
T Swing JTable / FocusListener AWT, Swing, JavaFX & SWT 0
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
L Swing JTable im Panel darstellen AWT, Swing, JavaFX & SWT 8
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
J addRow bei JTable AWT, Swing, JavaFX & SWT 6
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
Meeresgott Swing JTable AWT, Swing, JavaFX & SWT 4
J JTable Selection Listener funktioniert nicht AWT, Swing, JavaFX & SWT 4
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
Thallius JTable dynamisch Spaltenanzahl verändern AWT, Swing, JavaFX & SWT 2
Thallius JTable dynamisch laden? AWT, Swing, JavaFX & SWT 2
B Swing JTable sortieren AWT, Swing, JavaFX & SWT 2
T Swing JTable auslesen und befüllen AWT, Swing, JavaFX & SWT 8
B JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 1
J JTable und Suchlogik AWT, Swing, JavaFX & SWT 4
Viktim Swing JTable mit Tab verlassen AWT, Swing, JavaFX & SWT 1
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5
Viktim Swing JTable Mit Tab druch Zeilen Wechseln AWT, Swing, JavaFX & SWT 5
Thallius Warum refrehsed mein JTable nicht? AWT, Swing, JavaFX & SWT 5
Ghostman1711 Hinzufügen ausgewählter Dateinen des Filechoosers zu einem JTable AWT, Swing, JavaFX & SWT 9
S Swing JTable - Einzelne Rows einfärben AWT, Swing, JavaFX & SWT 11
M Wert einer Zelle aus JTable ziehen AWT, Swing, JavaFX & SWT 4
K JTable getValueAt() klappt nicht immer AWT, Swing, JavaFX & SWT 1
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
P JTable - bei Eingabe Selektion AWT, Swing, JavaFX & SWT 0
P Fokus auf Zelle in JTable AWT, Swing, JavaFX & SWT 1
S Swing Deselektion in JTable verhindern AWT, Swing, JavaFX & SWT 0
D Problem mit JTable AWT, Swing, JavaFX & SWT 1
N Swing Print JTable mit AbstractTableModel AWT, Swing, JavaFX & SWT 1
Ananaskirsche Swing jTable Reihen zuviel eingefügt AWT, Swing, JavaFX & SWT 12

Ähnliche Java Themen


Oben