Nimbus JButton: Zeilenumbruch korrigieren?

T

tuxedo

Gast
Servus,

hab da ein kleines Problem:

Ich verwende das Nimbus LaF und möchte auf einen JButton etwas Text anzeigen.

Aktuell sieht das zum Teil so aus:

Java:
text="abcdefgh 12345";
myButton.setText("<html><center>" + text + "</center></html>"); // der Text soll auf dem Buttion zentriert dargestellt werden

Und im UI, welches im Fullscreen-Modus läuft, hat der Button dann eine Dimension von 107,82 Pixeln und sieht so aus wie im Anhang gezeigt.

Leider wird der Text auf dem Button vom benutzer eingestellt und kann durchaus, wie in diesem Beispiel, etwas ungeschickt gewählt sein, so dass Zeilenumbruch und allg. der Platz etwas zu klein ist.
Offensichtlich passt die Berechnung der Textausrichtung/Darstellung von Nimbus nicht ganz zu meinen Vorstellungen.... denn so sieht's irgendwie schlecht aus.

Ich würde das nun gerne Verbesserung und bin am schauen wie ich das am einfachsten erledige.

Meine erste Idee wäre gewesen, einen eigenen Button zu implementieren und dann selbst zu zeichnen und den Zeilenumbruch etwas geschickter zu gestalten. Den eigenen Button zu implementieren ist nicht das Problem.

Der Nachteil an der Sache ist aber: Das passt dann wohl eher weniger zum restlichen Nimbus Style. Oder ich müsste den Nimbus-Button so exakt wie möglich optisch "nachbauen". Aber vielleicht will ich morgen auf ein anderes LaF wechseln? Dann müsste ich wieder alles anpassen :-(

Wie würdet ihr das Problem lösen? Oder gibt's eine Möglichkeit dem aktuellen LaF da etwas unterzuschieben das die Textausrichtung übernimmt?

Stehe da gerade etwas auf dem Schlauch ...

Gruß
Alex


[EDIT]Hmm, okay. hab etwas experimentiert. Ich kann natürlich auch ein JLabel auf den JButton draufklatschen und da den Text reinhängen. Das würde immerhin mal bewirken dass der text nicht auf den Button-Rand geschrieben wird. Dafür wird jetzt der Text abgeschnitten.

Im endeffekt muss ich jetzt also nur noch rausfinden wie ich den Text auf dem JLabel nun so behandle, dass er für mich okay ist. Wie das nun genau aussieht: Gute Frage. Evtl. die Schriftgröße autom. reduzieren oder den Text mit vorzeitig "..." enden lassen wenn er droht über die Label-Begrenzung hinaus zu ragen. Mal schauen.

Oder gibt's für solche Fälle schon eine fertige Lösung von der ich nix weiß?[/EDIT]
 

Anhänge

  • NimbusButtonTextLineBreak.png
    NimbusButtonTextLineBreak.png
    2,8 KB · Aufrufe: 48
Zuletzt bearbeitet von einem Moderator:
T

tuxedo

Gast
Hmmpf,

bin jetzt fast am Ziel, aber Nimbus ärgert mich:

Ist vielleicht etwas "dirty", aber JTextArea kann alles was ich suche (Zeilenumbruch am entsprechenden Character, ...). Das kann man prima auf einen JButton klatschen, transparent machen und die Rahmen eliminieren. Ohne Nimbus sieht's dann wieder aus wie ein "normaler Button mit Text drauf". Nur hat Nimbus die doofe eigenart im transparenten Zustand doch wieder Rahmen zu zeichnen :-(

Muss ich wohl doch JLabel überschreiben und den Zeilenumbruch selbst machen ...
 

Paddelpirat

Bekanntes Mitglied
Kannst du vielleicht etwas mit
Code:
setBorder
oder
Code:
setMargin
bewirken um den Rand (der JTextArea) anzupassen?
 
T

tuxedo

Gast
Code:
setBorder
hab ich probiert. Aber sobald das Nimbus LaF JTextArea transparent gemacht wird, ist der Rahmen dennoch da. setMargin hab ich nciht probiert, aber ich geh mal stark davon aus dass das nix helfen wird da

a) der Platz nach außen hin beschränkt ist
b) der Platz nach innen hin gebraucht wird

Werde jetzt JLabel erweitern und mit FontMetrics und der zur Verfügung stehenden Breite den String rechtzeitig umbrechen. Wenn der String dermaßen lang ist dass er unten aus dem Button hinausragt, werde ich ihn mit "..." abkürzen. Das ganze verheirate ich dann mit einer eigenen JButton-Klasse und schwups hab ich einen eigenen Button dem man beliebig viel Text verpassen kann. Naja, "schwups" ist vielleicht etwas übertrieben. Wird schon etwas dauern bis das mit dem umrechen alles so funktioniert wie ich mir das vorstelle. Aber wenigstens bin ich dann LaF unabhängig und habe keine "dirty workarounds".

- Alex
 

Paddelpirat

Bekanntes Mitglied
Kleine Anmerkung noch: Bei mir wird kein Rahmen von der JTextArea angezeigt, wenn ich ihn mit setBorder auf null setze und die Hintergrundfarbe auf 0,0,0,0. Aber etwas problematischer sehe ich hier das weiterleiten der Events für den Button.
 
T

tuxedo

Gast
Mit einem "Nicht Nimbus LaF" klappt das bei mir auch. Aber sobald ich Nimbus verwende sehe ich wieder einen Rahmen. Soweit ich herausgefunden habe ist das ein bekannter "Bug", oder zumindest eine Einschränlung seitens Nimbus.

- Alex
 

Paddelpirat

Bekanntes Mitglied
Hab schon Nimbus verwendet (über VM Argument):

Java:
public class ButtonTest {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        ButtonTest buttonTest = new ButtonTest();
        
        buttonTest.createFrame();
    }
    
    private void createFrame() {
        final JFrame frame = new JFrame("ButtonTest");
        frame.setBounds(300,300,300,300);
        
        frame.setLayout(null);
        
        final JTextArea textArea = new JTextArea();
        
        
        textArea.setLineWrap(true);
        textArea.setEditable(false);
        final JButton userButton = new JButton();
        textArea.setText("abcdefgh 12345sfsdfsdfsdffjjhjhjkjkjjljkjkjkjkljklkkkkkkkkkkkkkkkkkkkkkkkkkkkkk");
        userButton.add(textArea);
        textArea.setOpaque(false);
        textArea.setBackground(new Color(0,0,0,0));
        textArea.setBorder(null);
        textArea.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                userButton.doClick();
            }
        });
        textArea.addMouseMotionListener(new MouseAdapter() {
            public void mouseEntered(MouseEvent e) {
                userButton.setFocusPainted(true);
            }
            
            public void mouseExited(MouseEvent e) {
                userButton.setFocusPainted(false);
            }
        });
        textArea.setFocusable(false);
        
        userButton.setLocation(100, 100);
        userButton.setSize(107, 82);
        
        userButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.out.println(textArea.getText());
            }
        });
        //userButton.setHorizontalAlignment(SwingConstants.CENTER);
        userButton.setMargin(new Insets(0,0,0,0));
        
        frame.add(userButton);
        
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                frame.dispose();
            }
        });
        
        frame.setVisible(true);
    }
}

Bitte nicht wegen abmurksen wegen dem Code, der ist nur auf die Schnelle entstanden und da sind noch Versuche drin, die Events weiter zu leiten... geht bestimmt auch eleganter.
 

Anhänge

  • ButtonTest.jpg
    ButtonTest.jpg
    17,2 KB · Aufrufe: 31
T

tuxedo

Gast
Welche Java Version?

Hab hier 1.7.0_01 64bit unter Debian Linux. Vielleicht verhält sich das nochmal anders als deins?

Aber wie du oben schon erkannt hast: Die Sache mit den Mouseevents wird mit dem JTextArea etwas hässlich. Habs aktuell noch nicht hinbekommen.

Denke die JLabel-Lösung ist nach wie vor die beste...
 

Paddelpirat

Bekanntes Mitglied
Hab hier 1.7.0_04 64bit Windows. Ja glaub auch, dass es sich von den Events her nicht lohnt auf JTextArea zu setzen, wollt mir nur auch mal ansehen auf welche Probleme man da so stößt. Wirklich gut fand ich bisher keine Lösung. Hatte es auch mal mit JLabel ausprobiert usw. Da muss man halt selbst was basteln.
 
T

tuxedo

Gast
So, ich hab jetzt mal ein einigermaßen brauchbares ergebnis fertig:

Java:
import java.awt.Color;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.SwingConstants;

/**
 *
 * @author achr
 */
public class JLineBreakButton extends JButton implements MouseListener {

    class LineBreakLabel extends JLabel {

        private boolean charWrap;
        private boolean wordWrap;
        private final String CUT_TAIL = "...";

        public boolean isCharWrap() {
            return charWrap;
        }

        public void setCharWrap(boolean charWrap) {
            this.charWrap = charWrap;
        }

        public boolean isWordWrap() {
            return wordWrap;
        }

        public void setWordWrap(boolean wordWrap) {
            this.wordWrap = wordWrap;
        }

        @Override
        protected void paintComponent(Graphics g) {

            if (getText() == null || getText().length() == 0) {
                return;
            }

            Graphics2D g2d = (Graphics2D) g;
            g2d.setFont(getFont());

            g2d.setColor(getForeground());

            // see: [url=http://docs.oracle.com/javase/tutorial/2d/text/measuringtext.html]Measuring Text (The Java™ Tutorials > 2D Graphics > Working with Text APIs)[/url]
            FontMetrics fontMetrics = getFontMetrics(getFont());

            int width = getWidth();
            int higth = getHeight();

            int maxLines = higth / fontMetrics.getHeight();

            if (isCharWrap()) {

                // find out at which index to wrap to next line
                ArrayList<String> lines = new ArrayList<>();

                String completeText = getText();
                while (completeText.length() > 0) {
                    String line = completeText;
                    while (fontMetrics.stringWidth(line) > width) {
                        line = line.substring(0, line.length() - 1);
                    }
                    lines.add(line);
                    completeText = completeText.substring(line.length());
                }


                if (lines.size() >= maxLines) {
                    String remainingString = "";
                    while (lines.size() > maxLines - 1) {
                        remainingString = lines.remove(lines.size() - 1) + remainingString;
                    }
                    lines.add(cutString(remainingString, fontMetrics, width));
                }

                drawLines(fontMetrics, lines, g2d);


            } else if (isWordWrap()) {

                // wrap at each white-space char
                ArrayList<String> lines = new ArrayList<>();

                String[] lineArray = getText().split(" ");

                for (int i = 0; i < lineArray.length; i++) {
                    lines.add(cutString(lineArray[i], fontMetrics, width));
                }

                if (lines.size() >= maxLines) {
                    String remainingString = "";
                    while (lines.size() > maxLines - 1) {
                        remainingString = lines.remove(lines.size() - 1) + remainingString;
                    }
                    lines.add(cutString(remainingString, fontMetrics, width));
                }

                drawLines(fontMetrics, lines, g2d);

            } else {

                // do not wrap at all, just cut
                if (fontMetrics.stringWidth(getText()) > width) {
                    g2d.drawString(cutString(getText(), fontMetrics, width), 0, fontMetrics.getAscent());
                }

            }

        }

        private void drawLines(FontMetrics fontMetrics, ArrayList<String> lines, Graphics2D g2d) {

            int y = fontMetrics.getAscent();
            if (getVerticalAlignment() == SwingConstants.CENTER) {
                y = (getHeight() - (lines.size() * fontMetrics.getHeight())) / 2 + fontMetrics.getAscent();
            }

            for (String line : lines) {

                int x = 0;
                if (getHorizontalAlignment() == SwingConstants.CENTER) {
                    int lineWidth = fontMetrics.stringWidth(line);
                    x = (getWidth() - lineWidth) / 2;
                }

                g2d.drawString(line, x, y);
                y += fontMetrics.getHeight();
            }
        }

        private String cutString(String text, FontMetrics fontMetrics, int width) {
            // need to cut?
            boolean tooLong = fontMetrics.stringWidth(text) > width;
            if (tooLong) {
                // find max chars
                String cutString = text;
                while (tooLong) {
                    cutString = cutString.substring(0, cutString.length() - 1);
                    if (fontMetrics.stringWidth(cutString + CUT_TAIL) <= width) {
                        tooLong = false;
                    }
                }
                text = cutString + CUT_TAIL;
            }
            return text;
        }
    }
    
    
    // gap between button border and label border
    private int bordergap = 5;
    private LineBreakLabel label = new LineBreakLabel();

    public JLineBreakButton() {
        setLayout(null);
        label.setHorizontalAlignment(JLabel.CENTER);
        label.setVerticalAlignment(JLabel.CENTER);
        
//        label.setCharWrap(true);
        label.setWordWrap(true);

        add(label);

        setBackground(Color.GREEN);
        addMouseListener(this);
    }

    @Override
    public void setText(String text) {
        label.setText(text);
    }

    @Override
    public void doLayout() {
        super.doLayout();
        label.setBounds(bordergap, bordergap, getWidth() - (2 * bordergap), getHeight() - (2 * bordergap));
    }

    @Override
    public void mousePressed(MouseEvent e) {
        setBackground(getBackground().darker());
    }

    @Override
    public void mouseReleased(MouseEvent e) {
        setBackground(getBackground().brighter());
    }
    
    @Override
    public void mouseClicked(MouseEvent e) {
    }

    @Override
    public void mouseEntered(MouseEvent e) {
    }

    @Override
    public void mouseExited(MouseEvent e) {
    }

}

Es gibt drei Wrap-Modis:

Word-Wrap und Char-Wrap und No-Wrap.

Bei Word-Wrap wird bei _jedem_ Wort umgebrochen. Ist eine Zeile für sich zu lang, wird mit "..." abgekürzt".
Dieses Wrap-Verhalten mag nicht für jeden okay sein, für meine Anwendung ist das aber perfekt.

Bei Char-Wrap wird geschaut wieviele Zeichen in eine Zeile passen und dann passend umgebrochen. Ist selbst die letzte Zeile noch zu lang, wird diese mit "..." am Ende abgekürzt.

Bei No-Wrap wird gar nicht umgebrochen. Da wird lediglich die Zeile mit "..." abgekürzt, sollte sie zu lang sein.

Die Ausrichtung des Textes kann man Horizontal entweder CENTER oder LEFT, und Vertikal entweder TOP oder CENTER einstellen. RIGHT und BOTTOM ist (noch) nicht berücksichtigt.

Ist wie gesagt noch nicht perfekt und an allen Stellen 1a gelöst, aber für's erste funktioniert's und vielleicht kann's ja jemand gebrauchen ....
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R LookAndFeel Wie kann man die Textfarbe der Nimbus ProgressBar nach Füllstand ändern? AWT, Swing, JavaFX & SWT 2
M JTabbedPane verändern mit Nimbus Look and Feel AWT, Swing, JavaFX & SWT 1
V LookAndFeel JSpinner Hintergrund Farbe mit Nimbus LaF AWT, Swing, JavaFX & SWT 0
H Nimbus ProgressBar Colors AWT, Swing, JavaFX & SWT 9
H Nimbus L&F TitledBorder AWT, Swing, JavaFX & SWT 2
V Nimbus Look and Feel register Region problem AWT, Swing, JavaFX & SWT 5
V Nimbus Look And Feel Button textForeground AWT, Swing, JavaFX & SWT 8
M jTabbedPain und Nimbus AWT, Swing, JavaFX & SWT 4
N Nimbus Look & Feel AWT, Swing, JavaFX & SWT 4
hdi LookAndFeel Nimbus BUG mit JTabbedPane?! AWT, Swing, JavaFX & SWT 5
Y LookAndFeel Nimbus einschalten geht nicht AWT, Swing, JavaFX & SWT 31
V Swing Nimbus Look And Feel verschiedene Buttons AWT, Swing, JavaFX & SWT 8
A LookAndFeel Rollover Effekt bei JTabbedPane deaktivieren (Nimbus) AWT, Swing, JavaFX & SWT 8
B LookAndFeel Cell Renderer für JTable bei Nimbus Look and Feel AWT, Swing, JavaFX & SWT 2
T Nimbus Überschrift AWT, Swing, JavaFX & SWT 10
P LookAndFeel nimbus JLabel undurchsichtig opaque funktioniert nicht AWT, Swing, JavaFX & SWT 4
R LookAndFeel Nimbus ändert Programmausführung AWT, Swing, JavaFX & SWT 8
Y LookAndFeel JTabbedPane: Tab-Farbe mit Nimbus setzen AWT, Swing, JavaFX & SWT 3
N Swing Nimbus arbeitet nicht korrekt korrekt bei setEnabled() für JMenuItem AWT, Swing, JavaFX & SWT 2
C LookAndFeel Nimbus TabbedPane Backgroundcolor AWT, Swing, JavaFX & SWT 12
S Metal-Buttons so aussehen lassen wie Nimbus Buttons? AWT, Swing, JavaFX & SWT 3
Fu3L Keine Transparenten JTextComponents möglich mit Nimbus L&F? AWT, Swing, JavaFX & SWT 5
S Swing JTable in Nimbus AWT, Swing, JavaFX & SWT 4
O nimbus Abbrechen ok vertauscht AWT, Swing, JavaFX & SWT 2
E Look & Feel - Nimbus AWT, Swing, JavaFX & SWT 12
A Nimbus eigener Painter funzt nicht AWT, Swing, JavaFX & SWT 11
data89 Nimbus Look and Feel als gepackte JAR-Datei AWT, Swing, JavaFX & SWT 3
T Swing: TaskPane mit Nimbus LnF? AWT, Swing, JavaFX & SWT 4
M Problem Nimbus Look&Feel AWT, Swing, JavaFX & SWT 2
oliver1974 Nimbus Look & Feel und die Ausgaben nach Standardaus. AWT, Swing, JavaFX & SWT 4
G JButton mit importFiles-Funktion auf JDrawPane AWT, Swing, JavaFX & SWT 5
B JButton Search AWT, Swing, JavaFX & SWT 8
B Swing JButton mit KeyListener AWT, Swing, JavaFX & SWT 3
L JButton durch Mausklick auslösen und Enter-Taste AWT, Swing, JavaFX & SWT 2
N Erlennen ob JButton gedrückt ist AWT, Swing, JavaFX & SWT 6
D JButton Form verändern AWT, Swing, JavaFX & SWT 4
R Grafik per JButton laden und austauschen lassen AWT, Swing, JavaFX & SWT 14
SvenPittelkow Programm soll auf JButton warten bis der geklickt wurde AWT, Swing, JavaFX & SWT 1
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
Z Swing Drag and Drop mit einem JButton AWT, Swing, JavaFX & SWT 1
Z Swing Kann man auf JButton zeichenen AWT, Swing, JavaFX & SWT 3
J JButton Icon hinzufügen AWT, Swing, JavaFX & SWT 5
U Swing JButton mit Icon AWT, Swing, JavaFX & SWT 7
ms_cikar Jbutton erzeugt neue Buttons AWT, Swing, JavaFX & SWT 2
Drachenbauer Swing Wie ändere ich die Farbe der Konturen von jButton und jCombobox? AWT, Swing, JavaFX & SWT 18
Drachenbauer Swing Wie ändere ich die helle geklickt-Farbe von einem JButton? AWT, Swing, JavaFX & SWT 4
A Swing JButton mit Pfeiltasten bewegen AWT, Swing, JavaFX & SWT 6
F Swing Scrollbare Liste von JButton AWT, Swing, JavaFX & SWT 4
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
J JButton zum ändern Der Schriftart/Schriftgröße AWT, Swing, JavaFX & SWT 2
A Swing JButton aussehen AWT, Swing, JavaFX & SWT 12
J jButton soll nach klicken eine Variable um 1 erhöhen AWT, Swing, JavaFX & SWT 2
Legi Swing JButton Icon verschiebt sich AWT, Swing, JavaFX & SWT 2
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
S Swing JButton verschwindet nach Compilieren AWT, Swing, JavaFX & SWT 8
B Swing Posistion von JButton auslesen gibt immer 0 aus AWT, Swing, JavaFX & SWT 1
J Thread kennt JButton nicht. AWT, Swing, JavaFX & SWT 11
G Swing JButton ändert (unerwünscht) Größe bei Ausführung AWT, Swing, JavaFX & SWT 4
MR._FIRE_Flower Variable setzten mit JButton AWT, Swing, JavaFX & SWT 5
S Mit JButton neues Fester öffnen und das alte schließen AWT, Swing, JavaFX & SWT 3
T JButton wird beim vergrößern des Fensters erst sichtbar AWT, Swing, JavaFX & SWT 4
R Swing Verändern der Ausrichtung JButton und neu anzeigen AWT, Swing, JavaFX & SWT 2
G Swing JButton - Keine Klickanimation AWT, Swing, JavaFX & SWT 4
Joker4632 JButton nicht sichtbar, aber funktionsfähig AWT, Swing, JavaFX & SWT 8
B Swing JButton deaktivieren, wenn nicht alle JTextFields ausgefüllt sind. AWT, Swing, JavaFX & SWT 2
D JButton per Tastenkombi auswählen AWT, Swing, JavaFX & SWT 2
K JButton nicht sichtbar machen für User 2 AWT, Swing, JavaFX & SWT 4
L Swing JButton soll link öffnen AWT, Swing, JavaFX & SWT 1
K JButton auf anderer Klasse AWT, Swing, JavaFX & SWT 6
A JButton soll durch anklicken die Farbe wechseln AWT, Swing, JavaFX & SWT 8
T KeyListener funktioniert nicht wenn ich ein JButton hinzufüge AWT, Swing, JavaFX & SWT 1
R Swing ActionListener bei JButton AWT, Swing, JavaFX & SWT 9
B JButton -> Rahmen wegbekommen AWT, Swing, JavaFX & SWT 7
N JButton über benutzerdefinierte paintComponent setzen AWT, Swing, JavaFX & SWT 3
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
B JButton erscheint in JFrame, obwohl er diesem nicht zugeordnet wurde! AWT, Swing, JavaFX & SWT 1
M JButton Probleme AWT, Swing, JavaFX & SWT 14
T Klasse über JButton schließen AWT, Swing, JavaFX & SWT 4
M Textfarbe JButton verändern AWT, Swing, JavaFX & SWT 2
N JButton ausblenden AWT, Swing, JavaFX & SWT 2
M Swing jButton Text verschwindet AWT, Swing, JavaFX & SWT 2
C Swing JButton wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
stylegangsta JLabel durch Klick auf JButton einblenden AWT, Swing, JavaFX & SWT 16
stylegangsta Eigene Klasse für JButton aus dem JFrame abrufen AWT, Swing, JavaFX & SWT 29
stylegangsta MouseEvents aus JButton aufrufen AWT, Swing, JavaFX & SWT 3
stylegangsta JButton Transparent anzeigen AWT, Swing, JavaFX & SWT 9
stylegangsta JButton Fehelr javax.swing.ImageIcon.<init>(Unknown Source) AWT, Swing, JavaFX & SWT 24
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
D JButton - Nur Icon anzeigen / transparenter Hintergrund AWT, Swing, JavaFX & SWT 2
S JButton-Label vergrößern AWT, Swing, JavaFX & SWT 2
J Swing Basics - JButton funktioniert nicht. AWT, Swing, JavaFX & SWT 1
L JButton mit ImageIcon/Fehlermeldung AWT, Swing, JavaFX & SWT 1
D jButton Problem, ein Rieser Button bedeckt das ganze frame AWT, Swing, JavaFX & SWT 1
L Array mit JButton, wie rausfinden auf welche JButton geklickt wurde + index des JButtons ausgeben AWT, Swing, JavaFX & SWT 4
K (GUI) JButton Farbe bei druck ändern AWT, Swing, JavaFX & SWT 3
L JButton mit Image AWT, Swing, JavaFX & SWT 5
fLooojava JButton [Focus) AWT, Swing, JavaFX & SWT 4
M JButton - Listener AWT, Swing, JavaFX & SWT 1
D jButton auf von jFrame erzeugtem jDialog AWT, Swing, JavaFX & SWT 16
L JButton flackern - Programm hängt sich auf AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben