Swing Problem mit getTableCellRendererComponent()

kodela

Bekanntes Mitglied
Hallo zusammen,

wer kann mir helfen?

Ich habe als Teil eines Projektes eine JTable-Tabelle mit sieben Spalten. Jeder Datensatz für diese Tabelle besteht also aus sieben Feldern. Das erste Feld ist vom Typ Boolean, das zweite ein Integer, die restlichen sind Strings.

Alle Daten der Tabelle sollen mit einem Font fester Zeichenbreite (Courier New) und die Integer-Daten, Werte zwischen 1 und 9999, vierstellig formatiert mit vorangestellten Nullen dargestellt werden.

Bis auf die Darstellung der Spalte 2 für die Integer-Daten funktioniert alles einwandfrei. Diese jedoch werden getTableCellRendererComponent() in meinem Renderer überhaupt nicht übergeben. Übergeben werden nur die Daten der Spalten drei bis sieben, also die Daten vom Typ String.

Versuchshalber habe ich daher in der Klasse TabelleDaten für alle Daten den Typ Object verwendet. Obwohl eigentlich weder Boolean noch Integer Objecte sind, funktionierte das grundsätzlich. Die Daten mussten beim Auslesen allerdings gecastet werden. Aber auch dies brachte nicht den gewünschten Erfolg.

Hier einmal der Renderer:

Java:
public class Renderer extends DefaultTableCellRenderer {

    private JTable sdkListe;
    private Color colorSelected = new Color(51, 153, 255);
    private Color colorNormal = new Color(255, 255, 255);

    public Renderer(JTable lst, ListModel mod) {
        sdkListe = lst;
        setFont(new Font("Courier New", Font.PLAIN, 12));
        sdkListe.setRowHeight(sdkListe.getRowHeight() + 3);                 
        sdkListe.getColumnModel().getColumn(0).setPreferredWidth(mod.getSpaltenBreite(0));
        sdkListe.getColumnModel().getColumn(1).setPreferredWidth(mod.getSpaltenBreite(1));
        sdkListe.getColumnModel().getColumn(2).setPreferredWidth(mod.getSpaltenBreite(2));
        sdkListe.getColumnModel().getColumn(3).setPreferredWidth(mod.getSpaltenBreite(3));
        sdkListe.getColumnModel().getColumn(4).setPreferredWidth(mod.getSpaltenBreite(4));
        sdkListe.getColumnModel().getColumn(5).setPreferredWidth(mod.getSpaltenBreite(5));
        sdkListe.getColumnModel().getColumn(6).setPreferredWidth(mod.getSpaltenBreite(6));
        setOpaque(true);
    }

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value,
            boolean isSelected, boolean hasFocus, int row, int column) {

        setForeground(Color.BLACK);

        if (hasFocus || isSelected) {
            setBackground(colorSelected);
        }
        else {
            setBackground(colorNormal);
        }
        if (column == 1) {
            if ((Integer)value < 10) {
                setText("000" + value.toString());
            }
            else if ((Integer)value < 100) {
                setText("00" + value.toString());
            }
            else if ((Integer)value < 1000) {
                setText("0" + value.toString());
            }
            else {
                setText(value.toString());
            }
        }
        else {
            setText(value.toString());
        }
        return this;
    }
}

In Zeile 25 wird der Font festgelegt und in den Zeilen 33 bis 46 sollten die Integer-Werte formatiert werden.

Das kann aber alles nicht funktionieren, wenn der Aufruf von getTableCellRendererComponent() für die Spalte 1 nicht erfolgt.

Wo liegt mein Denkfehler.

Mit freundlichem Gruß,

Konrad
 
Zuletzt bearbeitet:

Michael...

Top Contributor
Die Zuweisung des Fonts sollte nur einmalig im Konstruktor des Renderers erfolgen. Es macht ja keinen Sinn den Font bei jedem zeichnen einer Zelle neu zu erzeugen und neu zu zuweisen.

Falls der Renderer überhaupt auf die zweite Spalte angewendet wird, werden die vorangestellten 0en durch den Aufruf von setText(value.toString()); in Zeile 47 sowieso wieder überschrieben --> Ein else vor Zeile 47 setzen.
[JAVA=33] if (column == 1) {
if ((Integer)value < 10) {
setText("000" + value.toString());
}
else if ((Integer)value < 100) {
setText("00" + value.toString());
}
else if ((Integer)value < 1000) {
setText("0" + value.toString());
}
else {
setText(value.toString());
}
}
setText(value.toString());[/code]
 

kodela

Bekanntes Mitglied
Hallo Michael,

herzlichen Dank für Deine Hinweise, diese beiden Fehler hätten mir eigentlich nicht passieren dürfen. Ich habe den Code korrigiert. Das Problem ist nun zwar teilweise behoben, die Zahlen in Spalte 2 werden nun im richtigen Font angezeigt, aber eben nicht in dem Format, wie ich es gerne hätte.

Das fehlende "else" war auf keinem Fall dafür schuldig, dass es nicht zu einer Formatierung kam, denn ich habe es beim Debuggen festgestellt, dass der erste Aufruf von getTableCellRendererComponent() für die Spalte drei erfolgt.

Konrad
 

Michael...

Top Contributor
ich habe es beim Debuggen festgestellt, dass der erste Aufruf von getTableCellRendererComponent() für die Spalte drei erfolgt.
Wenn dem so ist, weiss ich nicht warum die Spalte zwei den selben Font verwenden sollte. Denn dann scheint es so zu sein, dass der Renderer für die Spalte zwei nicht angewendet wird.
Interessant wäre es jetzt, wie der Renderer der Tabelle bzw. der Spalte zwei zugewiesen wird und eventuell auch das TableModel ausschaut.
 

kodela

Bekanntes Mitglied
Hallo Michael,

tut mir Leid, ich habe mir eingebildet, es sei der selbe Font, beim genauen Hinsehen habe ich jedoch festgestellt, dass es nicht der selbe ist.

Dass der Renderer für Spalte eins und zwei nicht verwendet wird, steht für mich außer Zweifel, denn wenn getTableCellRendererComponent() erstmals aufgerufen wird, hat column den Wert 2 und row den Wert 0. Es folgen für row 0 die Spalten bis 6. Dann geht das Spiel weiter, für jede Zeile von Spalte 2 (der dritten Spalte) bis zur Spalte 6.

Hier der Code für die Zuweisung der Renderers:

Java:
        sdkListe = new JTable(listeDaten);
        sdkListe.setDefaultEditor(Object.class, new ListEditor());
        sdkListe.setDefaultRenderer(Object.class, 
                new Renderer(sdkListe, listeDaten));

Und hier auszugsweise das TabeleModel:

Java:
public class ListModel extends DefaultTableModel {

    private SpalteDaten selekt = new SpalteDaten("", 35);
    private SpalteDaten num = new SpalteDaten("Nr", 45);
    private SpalteDaten aufgabe = new SpalteDaten("Aufgabe", 295);
    private SpalteDaten level = new SpalteDaten("Level", 65);
    private SpalteDaten vorgaben = new SpalteDaten("VW", 32);
    private SpalteDaten loesung = new SpalteDaten("Lösung", 76);
    private SpalteDaten bemerkung = new SpalteDaten("Bemerkung", 262);
    private SpalteDaten spalte[] = {selekt, num, aufgabe, level, vorgaben, loesung, bemerkung};
    private ArrayList<Object> liste;
    private boolean geaendert;
    private String userDir = System.getProperty("user.dir");
    private String listDatei = "sdkliste.lst";


    @Override
    public Class <?> getColumnClass(int i) {
        return getValueAt(0, i).getClass();
    }

    /**
     * Konstruktor
     */
    @SuppressWarnings({"unchecked", "CollectionWithoutInitialCapacity"})
    public ListModel() {
        liste = new ArrayList<Object>();
        initDaten();    
        geaendert = false;
    }

    private void initDaten(){
        File lf = new File(userDir, listDatei);
        if (lf.canRead() && lf.length() > 0) {
            datenLaden(userDir, listDatei);          // Daten werden aus Datei geladen
        }
        else {
            setDefaultData();                
        }
    }

    ...
    ...

    @Override
    public int getRowCount() {
        return liste == null ? 0 : liste.size();
    }

    @Override
    public int getColumnCount() {
        return spalte.length;
    }

    @Override
    public String getColumnName(int column) {
        return spalte[column].getSpaltenKopf();     // str;
    }

    @Override
    public boolean isCellEditable(int nRow, int nCol) {
        return nCol > 0 && nCol < 6 ? false : true;
    }

    @Override
    public Object getValueAt(int nRow, int nCol) {
        TabelleDaten row = (TabelleDaten) liste.get(nRow);
        switch (nCol) {
            case 0:
                return row.isPrintListe();
            case 1:
                return row.getLfdNr();
            case 2:
                return row.getAufgabe();
            case 3:
                return row.getLevel();
            case 4:
                return row.getVorgaben();
            case 5:
                return row.getLoesung();
            case 6:
                return row.getBemerkung();
        }
        return "";
    }

    ...
    ...
}

Jetzt noch, ebenfalls auszugsweise, die Klasse TabelleDaten:

Java:
class TabelleDaten {

    private Object printListe;
    private Object nummer;
    private Object aufgabe;
    private Object vorgaben;
    private Object level;
    private Object loesung;
    private Object bemerkung;

    TabelleDaten(boolean pl, int nr, String afg, String lev,
            String vor, String loe, String bem) {
        printListe = pl;
        nummer = nr;
        aufgabe = afg;
        level = lev;
        vorgaben = vor;
        loesung = loe;
        bemerkung = bem;
    }

    public boolean isPrintListe() {
        return (Boolean)printListe;
    }

    public void setPrintListe(boolean pl) {
        printListe = pl;
    }

    public int getNummer() {
        return (Integer)nummer;
    }

    public String getAufgabe() {
        return (String)aufgabe;
    }

    public void setAufgabe(String aufgabe) {
        this.aufgabe = aufgabe;
    }

    ...
    ...
}

Der Vollständigkeit halber noch die Klasse SpalteDaten:

Java:
class SpalteDaten {

    private String spaltenKopf;
    private int spaltenBreite;

    SpalteDaten(String title, int width) {
        spaltenKopf = title;
        spaltenBreite = width;
    }

    public String getSpaltenKopf() {
        return spaltenKopf;
    }

    public void setSpaltenKopf(String spaltenKopf) {
        this.spaltenKopf = spaltenKopf;
    }

    public int getSpaltenBreite() {
        return spaltenBreite;
    }

    public void setSpaltenBreite(int spaltenBreite) {
        this.spaltenBreite = spaltenBreite;
    }
}

Wie bereits erwähnt, hatte ich hier ursprünglich für die Daten nicht den Typ Object. Zuerst waren es in folgender Reihenfolge:

boolean, String, String, String, String, String, String

Damit ließ sich auch die Spalte zwei formatieren. Allerdings betraf dies nur den Font. Die Formatierung der Aufgaben-Nummer erfolgte direkt bei der Stringbildung.

Dann wollte ich aber Den Wert für die Aufgabennummer als Integer und damit kamen die Probleme.

Ich hoffe, die Codeschnipsel reichen für eine Beurteilung der Frage, weshalb der Renderer für die ersten beiden Spalten (wichtig wäre nur die zweite) nicht aufgerufen wird.

Konrad
 
Zuletzt bearbeitet:

Michael...

Top Contributor
Im Falle des Renderes wird zwischen Integer und Object unterschieden.
Damit der Renderer auch für die zweite Spalte verwendet wird hast Du folgende Möglichkeiten:
a) Du setzt den Renderer als DefaultRenderer auch für Integer.class
b) Du setzt den Renderer direkt für die zweite Spalte
c) Du entfernst die Methode
Code:
public Class <?> getColumnClass(int i) {
aus Deinem TableModel
 

kodela

Bekanntes Mitglied
Hallo Michael,

zuerst einmal Danke für die Mühe, die Du Dir mit meinem Problem machst.

Kannst Du mir auch noch sagen, wie ich den Renderer als DefaultRenderer auch für Integer.class setzen kann. Ich areite erst seit Anfang dieses Jahres mit Java und blicke da noch nicht voll durch.

Den Renderer nur für die zweite Spalte einzusetzen wäre natürlich auch eine Möglichkeit, aber dann geht mir doch der Einfluss auf die anderen Spalten verloren.

Die dritte Möglichkeit, also das Entfernen der Methode public Class <?> getColumnClass(int i), habe ich schon ausprobiert und die Spalte 2 sah genau so aus, wie ich es mir vorstellte, aber dafür waren in der ersten Spalte die Selektionskästchen für den jeweiligen Datensatz verschwunden. Man sah nur drei Punkte und wenn man die Spalte verbreiterte, kam "false" zu Tage. So will ich das natürlich nicht. Der Anwender soll die Möglichkeit haben, mehrere Datensätze für den Ausdruck zu selektieren.

Wenn es Dich übrigens interessiert, wie mein Projekt aussieht, kannst Du es von meiner Homepage downloden. Hier die Adresse: Konrad Demmel's Homepage. Da ist die Tabelle noch in Ordnung, aber die Daten der Spalte zwei sind eben keine Integers.

Konrad
 
B

Beni

Gast
JTable.setDefaultRenderer setzt den default-renderer.

Java:
table.setDefaultRenderer( Integer.class, renderer );

Btw. es wäre noch schön wenn du verschiedene Renderer für verschiedene Datentypen verwendest, dann musst du nicht allen Code in einen Renderer verwursteln (den du kein zweites mal einsetzten kannst).
 

kodela

Bekanntes Mitglied
Hallo Beni, hallo Michael,

herzlichen Dank für Eure Hilfe. Ich habe dadurch nun doch ein etwas besseres Verständnis über den Einsatz eines Renderers bekommen.

Nachdem ich den Renderer nur für die Integer-Class und damit ausschließlich für die Spalte 2 definiert und die Einstellungen für den Font herausgenommen habe, funktioniert nun alles so wie ich es mir gedacht habe.

Mit freundlichem Gruß,

Konrad
 

kodela

Bekanntes Mitglied
Hallo,

eine Frage hätte ich noch. Wer kann mir sagen, warum in einem Renderer für den Typ Object die Methode getTableCellRendererComponent() nur für Spalten mit Daten vom Typ String aufgerufen wird. Liegt das daran, dass Boolean und Integer selbst keine Klassen und damit auch keine Objecte sind?

Konrad
 

Michael...

Top Contributor
Das liegt daran, dass JTable bereits einen DefaultRenderer für alle Objekte vom Typ Number (Integer ist eine Subklasse davon) definiert hat.
Wenn für eine konkrete Klasse ein DefaultRenderer definiert ist, wird dieser benutzt. Wenn nicht, wird geprüft, ob für deren Superklasse ein Renderer definiert ist usw. bis man letztendlich bei Object.class landet.

Theoretisch könnte man statt:
Java:
table.setDefaultRenderer(Integer.class, myRenderer);
auch folgendes schreiben:
Java:
table.setDefaultRenderer(Number.class, null);
Dann würde aber für alle Klassen die von Number erben, der Renderer für Object verwendet werden.

PS.: Ist nur Theorie, hab's noch nie ausprobiert.
 

kodela

Bekanntes Mitglied
Hallo Michael,

Deine Argumentation leuchtet mir schon ein. Trotzdem stellt sich mir die Frage, warum ein Renderer, der als DefaultRenderer für den Typ Object gesetzt wird, nur Strings aber keine sonstigen Typen behandelt.

Wenn Integers und Booleans wie Strings als Objekte gesehen würden, dann müsste doch auch für sie ein solcher Renderer benutzt werden. Du schreibst:
Wenn für eine konkrete Klasse ein DefaultRenderer definiert ist, wird dieser benutzt.
Ich habe aber den DefaultRenderer nicht für die konkrete Klasse "String" sondern für die Klasse "Object" gesetzt. "Object" ist doch, so weit ich es verstanden habe, die Basisklasse der Java-Klassenhierarchie, damit gewissermaßen die Oberklasse aller Java-Klassen und selbst keine konkrete Klasse.

Wenn das aber so ist und ein für "Object" gesetzter DefaultRenderer ignoriert "Booleans" und "Numbers" (auch wieder die Oberklasse für "Integer", Double" etc.), dann muss man daraus doch schließen, dass Java für den Bereich der Renderer davon ausgeht, dass Wrapper-Objekte, also abstrakte Objekte für die fundamentalen Typen von Java (z.B. int, char, double, float, boolean) nicht als Objekte angesehen werden. Anders kann ich mir das nicht erklären.

Konrad
 

Michael...

Top Contributor
Wenn das aber so ist und ein für "Object" gesetzter DefaultRenderer ignoriert "Booleans" und "Numbers" (auch wieder die Oberklasse für "Integer", Double" etc.), dann muss man daraus doch schließen, dass Java für den Bereich der Renderer davon ausgeht, dass Wrapper-Objekte, also abstrakte Objekte für die fundamentalen Typen von Java (z.B. int, char, double, float, boolean) nicht als Objekte angesehen werden.
Nein, auch der Renderer "sieht" Objekte vom Typ Integer, Double, Number, Boolean... als Object(s) an - sie erben ja alle von Object.
JTable besitzt einen gewissen Standardsatz an DefaultRendereren für unterschiedliche Objekte.
Wenn man von der JTable den Renderer für ein Objekt einer bestimmten Klasse anfordert, arbeitet die JTable sich sukksessive durch die Klassenhierarchie, bis sie einen passenden Renderer gefunden hat.
Bsp. Integer:
Für Integer ist standardmäßig kein DefaultRenderer definiert, also ermittelt JTable die Superklasse von Integer --> Number und prüft ob für diese Klasse ein Renderer definiert ist. Und tatsächlich ;-) für Number ist ein Renderer (Text rechtsbündig) definiert, also wird dieser angewendet.
Würde man jetzt aktiv den DefaultRenderer für die Klasse Number löschen, würde die JTable im obigen Fall die Superklasse von Number ermitteln --> Object und wird dann auch für Integer, Double, Float... den Renderer für Objekte vom Typ Object anwenden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Problem mit TextField.requestFocus(); AWT, Swing, JavaFX & SWT 17
Juelin Problem beim Laden Controller AWT, Swing, JavaFX & SWT 2
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
H 2D-Grafik Problem mit Paint AWT, Swing, JavaFX & SWT 1
S Layout - Problem AWT, Swing, JavaFX & SWT 1
Tassos JavaFX/Problem mit der Maussteuerung in Stackpane AWT, Swing, JavaFX & SWT 7
sserio Java Fx - Problem AWT, Swing, JavaFX & SWT 3
A Problem Spiel auf Panel der GUI zu bringen AWT, Swing, JavaFX & SWT 1
A JavaFX Controller Problem AWT, Swing, JavaFX & SWT 1
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
Umb3rus JavaFX Problem mit PropertyValueFactory: can not read from unreadable property AWT, Swing, JavaFX & SWT 1
T Problem mit paintComponent() AWT, Swing, JavaFX & SWT 17
AmsananKING Java Menü-Problem AWT, Swing, JavaFX & SWT 1
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
G Instance OF Problem AWT, Swing, JavaFX & SWT 9
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
M Problem mit dem Anzeigen von Frames im Vordergrund AWT, Swing, JavaFX & SWT 5
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
newJavaGeek Grid-Layout problem AWT, Swing, JavaFX & SWT 7
J JavaFX Löschen im Tabelview macht Problem AWT, Swing, JavaFX & SWT 15
JavaTalksToMe JavaFx ExekutorService Problem AWT, Swing, JavaFX & SWT 2
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
B Problem mit JavaFX AWT, Swing, JavaFX & SWT 5
J css Problem AWT, Swing, JavaFX & SWT 5
B JavaFX habe mein Problem fett markiert AWT, Swing, JavaFX & SWT 2
A Swing Filter-Problem AWT, Swing, JavaFX & SWT 1
temi JavaFX Problem mit IntelliJ und JavaFx 11 unter XUbuntu AWT, Swing, JavaFX & SWT 3
L Java FX Problem mit Ubuntu 18 und JavaFx AWT, Swing, JavaFX & SWT 27
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
kodela Swing Problem mit Warten-Dialog AWT, Swing, JavaFX & SWT 16
B JavaFx Scene Builder Problem AWT, Swing, JavaFX & SWT 2
B [Problem] Java öffnet Word-Datein nicht AWT, Swing, JavaFX & SWT 14
T DataBinding Problem AWT, Swing, JavaFX & SWT 5
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 15
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 0
D Swing SwingUtils / Thread Problem AWT, Swing, JavaFX & SWT 3
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
T Swing Problem mit Datum und FormattedTextField AWT, Swing, JavaFX & SWT 2
S AWT Java print dialog Problem AWT, Swing, JavaFX & SWT 0
olfibits JavaFX Problem mit HTMLEditor AWT, Swing, JavaFX & SWT 0
W SWT hover-background-problem with first column in TreeViewer AWT, Swing, JavaFX & SWT 0
M Problem mit Add JScrollPane AWT, Swing, JavaFX & SWT 25
Mario1409 Swing JTextArea scroll Problem AWT, Swing, JavaFX & SWT 0
N Swing Problem mit loop AWT, Swing, JavaFX & SWT 2
S Swing Problem mit Button und ActionListener AWT, Swing, JavaFX & SWT 5
S Swing & Clean und build Problem AWT, Swing, JavaFX & SWT 12
S JLabel setText() Problem AWT, Swing, JavaFX & SWT 6
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
G Swing Splitpane Problem AWT, Swing, JavaFX & SWT 1
F Problem mit der FXML Rectangle Shape AWT, Swing, JavaFX & SWT 2
N JavaFX Stranges Problem mit der Autoscroll-Eigenschaft von Textareas AWT, Swing, JavaFX & SWT 0
E Java FX FXML Problem mit html Scriptausführung AWT, Swing, JavaFX & SWT 2
J JavaFX Intersect Problem mit Shapes AWT, Swing, JavaFX & SWT 10
R JavaFX MediaPlayer AVI-Problem AWT, Swing, JavaFX & SWT 1
M Swing Problem mit ListCellRenderer AWT, Swing, JavaFX & SWT 7
D Problem mit JTable AWT, Swing, JavaFX & SWT 1
F GUI Auflösung ändern - Koordianten und Proportions Problem AWT, Swing, JavaFX & SWT 21
J Problem mit Button darstellung AWT, Swing, JavaFX & SWT 23
M Problem mit Layoutmanagern... Hilfe wäre sehr nett. AWT, Swing, JavaFX & SWT 2
S 2D-Grafik Problem mit Variablen AWT, Swing, JavaFX & SWT 4
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
M Swing AttributiveCellTableModel addRow() Problem AWT, Swing, JavaFX & SWT 1
J Swing Problem mit Graphics Methode AWT, Swing, JavaFX & SWT 4
N JavaFX Problem mit table multiple selection AWT, Swing, JavaFX & SWT 5
K CheckBox Problem AWT, Swing, JavaFX & SWT 5
Grevak DisplayMode Problem seit Windows 10 AWT, Swing, JavaFX & SWT 2
S Swing Eigene JComboBox Problem! AWT, Swing, JavaFX & SWT 1
B Swing Problem mit Bildpfad AWT, Swing, JavaFX & SWT 4
N Swing Problem beim Scrollen mit JScrollPane AWT, Swing, JavaFX & SWT 6
V Graphics g - drawOval problem mit background AWT, Swing, JavaFX & SWT 1
C AWT Problem mit Protokol Fenster AWT, Swing, JavaFX & SWT 0
M Swing pack() Problem mit Taskleiste AWT, Swing, JavaFX & SWT 4
N Swing Choice- Problem! AWT, Swing, JavaFX & SWT 8
Q "AWT-EventQueue-0" Exception Problem AWT, Swing, JavaFX & SWT 4
D jButton Problem, ein Rieser Button bedeckt das ganze frame AWT, Swing, JavaFX & SWT 1
A Problem: repaint() - Schleife AWT, Swing, JavaFX & SWT 3
J Anfänger GUI Problem bei der Ausführung eines sehr einfachen Programms AWT, Swing, JavaFX & SWT 2
P AWT Problem mit Platzierung (GridBagLayout) AWT, Swing, JavaFX & SWT 2
N Swing JTree Problem beim erstellen der Knoten AWT, Swing, JavaFX & SWT 0
N Swing CardLayout: Problem beim Wechsel zwischen den JPanels AWT, Swing, JavaFX & SWT 3
A Mini-Menu-Schriften. Ein Problem bei hohen DPI Zahlen AWT, Swing, JavaFX & SWT 2
Z Canvas in Frame einfügen. Problem mit 4-Gewinnt AWT, Swing, JavaFX & SWT 1
C Thread-/ Simulations- Problem AWT, Swing, JavaFX & SWT 18
G Swing Setvisible problem AWT, Swing, JavaFX & SWT 1
J JTabbedPane: close Button Problem AWT, Swing, JavaFX & SWT 2
Tom299 JavaFX -> fxmlLoader -> getResourceAsStream Problem AWT, Swing, JavaFX & SWT 1
T Problem: ComboBox und addItem AWT, Swing, JavaFX & SWT 5
M JTextArea wird nicht aktualisiert (ActionListener-Problem) AWT, Swing, JavaFX & SWT 1
T LayoutManager LookAndFeel-Problem AWT, Swing, JavaFX & SWT 4
F Problem mit Implementierung von Kollisionsabfrage AWT, Swing, JavaFX & SWT 5
vodkaz (javafx) Image Problem AWT, Swing, JavaFX & SWT 2
T Problem beim Zeichnen von Rechteck AWT, Swing, JavaFX & SWT 3
B JavaFX Problem bei Kamera / Group, gesamte Scene bewegt sich mit AWT, Swing, JavaFX & SWT 0
L Swing Vier Gewinnt Problem AWT, Swing, JavaFX & SWT 2
Z GUI-Problem, finde meinen Fehler nicht! AWT, Swing, JavaFX & SWT 11
B JavaFX KeyEvent und Canvas draw Problem AWT, Swing, JavaFX & SWT 9
R Swing Problem: IOException bei ActionListener AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben