Icons in 2 Jlabels Director nebeneinander anzeigen

VPChief

Bekanntes Mitglied
Hallo,
Ich muss ein Programm für einen Freund schreiben. Dieses Programm soll ein Icon in ein Jlabel ausgeben, das klappt auch soweit, allerdings zeigt es meine Icons mit einem Abstand zwischeneinander an. Gibt es eine Möglichkeit diesen Abstand da raus zukriegen. Ich benutze dazu folgenden Code:

Jlabel lbl = new Jlabel();
lbl.setIcon(”src\\bild.png);

Sorry für den Titel das war die Autokorrektur.

Danke schon mal im Vorraus
Grüße VPChief
 

VPChief

Bekanntes Mitglied
Ich habe garkein Layout drin. Ich bin mir nicht sicher was dort gemeint wurde: Könnte am LayoutManager liegen. Pack den Spaß mal in ein Panel mit FlowLayout. Ich will dass beide Icons direkt nebeneinander sind. Momentan (das war oben auch falsch ausgedrückt, Sorry) habe ich die Icons in zwei Labels gepackt.
image.png
Das rot eingekreiste soll raus.
Falls das gemeint wurde probier ich das mal,
danke
 

mihe7

Top Contributor
Hier mal ein Beispiel:
Java:
import java.awt.FlowLayout;
import java.net.*;
import javax.swing.*;

public class Test {
    private URL imageUrl;

    public Test(URL url) { imageUrl = url; }

    public void run() {
        FlowLayout layout = new FlowLayout(FlowLayout.LEFT, 0, 0);
        JPanel panel = new JPanel(layout);
        panel.add(new JLabel(new ImageIcon(imageUrl)));
        panel.add(new JLabel(new ImageIcon(imageUrl)));
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.add(panel);
        frame.setSize(800, 600);
        frame.setVisible(true);
    }

    public static void main(String[] args) throws Exception {
        URL imageUrl = new URL("https://upload.wikimedia.org/wikipedia/commons/8/8a/Schaltfl%C3%A4che.png");
        SwingUtilities.invokeLater(() -> new Test(imageUrl).run());
    }
}
 

VPChief

Bekanntes Mitglied
Sorry, falls die frage dumm ist aber bei mir kommen dann folgende Fehlermeldungen:

Return type for the method is missing
Test cannot be resolved to a type
 

VPChief

Bekanntes Mitglied
Java:
package test;


import java.awt.FlowLayout;

import java.net.*;

import javax.swing.*;


public class test {

    

     private URL imageUrl;


        public Test(URL url) { imageUrl = url; }


        public void run() {

            FlowLayout layout = new FlowLayout(FlowLayout.LEFT, 0, 0);

            JPanel panel = new JPanel(layout);

            panel.add(new JLabel(new ImageIcon(imageUrl)));

            panel.add(new JLabel(new ImageIcon(imageUrl)));

            JFrame frame = new JFrame();

            frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

            frame.add(panel);

            frame.setSize(800, 600);

            frame.setVisible(true);

        }


        public static void main(String[] args) throws Exception {

            URL imageUrl = new URL("https://upload.wikimedia.org/wikipedia/commons/8/8a/Schaltfl%C3%A4che.png");

            SwingUtilities.invokeLater(() -> new Test(imageUrl).run());

        }



}

so habe ich es gemacht
 

VPChief

Bekanntes Mitglied
Habs groß gemacht, jetzt funktionierts, danke. Wie übertrag ich das jetzt in mein eigenes Programm? Ich habs so gemacht doch es reagiert nicht
Java:
button3.addActionListener(new ActionListener() {

                    @Override
                    public void actionPerformed(ActionEvent arg0) {
                        FlowLayout layout = new FlowLayout(FlowLayout.LEFT, 0, 0);
                        JPanel panel = new JPanel(layout);
                        panel.add(new JLabel(new ImageIcon("src\\tex1.png")));
                        panel.add(new JLabel(new ImageIcon("src\\tex1.png")));
                       
                    }
                   
                   
                });
Ausserdem reagieren meine buttons jetzt erst wenn ich das fenster minimiere und wieder öffne
 

mihe7

Top Contributor
Was betreibst Du da?!? Wieso ist das jetzt in einem ActionListener? Außerdem müsstest Du das panel schon noch Deinem Frame hinzufügen, den Container validieren oder pack() auf dem Frame aufrufen.
 

VPChief

Bekanntes Mitglied
Bin Anfänger, das sollte man dazu sagen . Das Programm soll, wie schon gesagt ein label ausgeben. Allerdings wenn der Benutzer den Button klickt.
danke, das hinzufügen habe ich vergessen. jetzt funktioniert das. wie kann ich es aber mache wenn ich das mit 2 unterschiedlichen Buttons machen will. Also wenn ich auf einen Button klicke, der wie auf dem Bild dann A ausgibt und einen mit B, ist das auch möglich?
 

mihe7

Top Contributor
Klar, jeder Button hat einen eigenen Listener. In der Regel fügt man aber bei einem Klick auf einen Button keine Komponenten mehr zum Frame hinzu. Vielmehr baut man den Frame einmal und ändert die Inhalte der Komponenten. Du kannst z. B. auf ein vorhandenes Label zugreifen und setIcon aufrufen. Wenn Du ein Beispiel brauchst, sag Bescheid, dann schreibe ich meinen Code oben um.
 

VPChief

Bekanntes Mitglied
Also ich habe jetzt folgenden Code geschrieben
Java:
        JPanel content = new JPanel();
        
        JButton btn = new JButton();
        JLabel label = new JLabel();
        label.setIcon(new ImageIcon("src\\bild.png"));
        System.out.println();
        content.add(label);
        content.add(btn);
        a.setContentPane(content);
        
        btn.addActionListener(new ActionListener(){

            @Override
            public void actionPerformed(ActionEvent arg0) {
                label.setIcon(new ImageIcon ("src\\bild2.png"));
Allerdings löscht der jetzt bild und macht statdessen bild2 hin. Wie macht man das mit 2 Bildern. Hast dus so gemeint, dass man danach dem label ein neues Bild hinzufügt oder?
 

mihe7

Top Contributor
Füg einfach zwei Labels hinzu. Das Bild des einen setzt Du mit dem einen Button, das Bild des anderen mit dem anderen :)
 

mihe7

Top Contributor
Hier mal mit Text:
Java:
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.*;
import javax.swing.*;

public class Test {
    private JLabel firstLabel;
    private JLabel secondLabel;

    public void run() {
        firstLabel = new JLabel();
        secondLabel = new JLabel();
        JButton firstButton = new JButton("First");
        JButton secondButton = new JButton("Second");

        firstButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                firstLabel.setText("Erster");
            }
        });

        // hier in Kurzschreibweise (Faulheit)
        secondButton.addActionListener(e -> secondLabel.setText("Zweiter"));

        FlowLayout layout = new FlowLayout(FlowLayout.LEFT, 0, 0);
        JPanel panel = new JPanel(layout);
        panel.add(firstLabel);
        panel.add(secondLabel);
        panel.add(firstButton);
        panel.add(secondButton);

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.add(panel);
        frame.setSize(800, 600);
        frame.setVisible(true);
    }

    public static void main(String[] args) throws Exception {
        SwingUtilities.invokeLater(() -> new Test().run());
    }
}
 

VPChief

Bekanntes Mitglied
Vielen Dank kann man das so machen, dass der Button auch zweimal reagieren kann?, allerdings reagiert der Button erst wenn ich das Fenster minimiere und wieder öffne.
 

VPChief

Bekanntes Mitglied
Nochmal das gleiche, bei mir reagiert der immer blos einmal, also der sagt einmal erster einmal zweiter mehr geht nicht Ausserdem soll er auch zweiter als erstes Sagen, usw.
 

mihe7

Top Contributor
Bau eine Ausgabe (System.out.println) in den ActionListener ein und Du wirst sehen, dass die jedesmal aufgerufen wird, wenn Du einen Button drückst. Der Button setzt ja den Text und zwar immer wieder den gleichen - folglich stellst Du einfach nur keinen Unterschied fest, wenn Du auch 100x auf den Knopf drückst. Daher nochmals die Frage: was soll denn beim zweiten, dritten etc. Mal passieren?
 

VPChief

Bekanntes Mitglied
Also der soll einfach das gleiche wieder machen, also nochmal erster schreiben z.B.
Tatsächlich macht es immer einen sysout wenn man draufklickt, allerdings erscheint der Text erster nicht 2x
 

mihe7

Top Contributor
allerdings erscheint der Text erster nicht 2x
Natürlich nicht. Der Text des Labels wird ja auf "Erster" gesetzt. Du willst, dass "Erster" an den Text angefügt wird, also etwas wie
Java:
        firstButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                firstLabel.setText(firstLabel.getText() + "Erster");
            }
        });
 

VPChief

Bekanntes Mitglied
Ich meine, wenn man 2x auf den Button klickt müsste doch da auch 2x erster stehen oder?
Entschuldigung wenn ich mich vielleicht gerade etwas dumm Anstelle.
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Ich meine, wenn man 2x auf den Button klickt müsste doch da auch 2x erster stehen oder?
In der ursprünglichen Variante nicht. Es wird der Text des Labels fest auf "Erster" eingestellt. Das kannst du tausendfach wiederholen, es wird immer "Erster" bleiben. In der Variante aus Kommentar #22 wird "Erster" an den bereits vorhandenen Text angefügt, so dass bei jedem Klick ein "Erster" dazukommt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
MiMa Fonts, Icons, Bilder in JavaFX Anwendung AWT, Swing, JavaFX & SWT 5
thor_norsk Icons laden nicht in GUI AWT, Swing, JavaFX & SWT 15
I Einbindung eines jpg/png/icons in eine GUI AWT, Swing, JavaFX & SWT 1
ProggersWorld JavaFX Icons im TreeView werden nicht angezeigt AWT, Swing, JavaFX & SWT 1
F Icons neben Text in Listview setzen AWT, Swing, JavaFX & SWT 2
A Jtabbed ein Reiter mit zwei icons AWT, Swing, JavaFX & SWT 4
B SWT TreeViewer dynamische Anzeige von Icons AWT, Swing, JavaFX & SWT 3
B Link eines Icons dynamisch gestalten AWT, Swing, JavaFX & SWT 2
JavaInBrain Swing JButton: Zuordnen von Icons AWT, Swing, JavaFX & SWT 4
T Swing Laden eines Icons auf JButton liefert NullPointerException AWT, Swing, JavaFX & SWT 8
T SWT Drag&Drop: Eclipse FileTransfer mit Icons AWT, Swing, JavaFX & SWT 14
P Liste mit Icons und mehreren Spalten AWT, Swing, JavaFX & SWT 7
NR_EIGHT Swing JButton zeigt Icons nicht an AWT, Swing, JavaFX & SWT 3
B "Alte" Swing ICONs gesucht AWT, Swing, JavaFX & SWT 2
X Icons in einer Spalte darstellen AWT, Swing, JavaFX & SWT 6
S 2D-Grafik Icon in Image (System Icons) AWT, Swing, JavaFX & SWT 2
G Unterschiedliche Pfadangabe zu Icons zwischen JApplet und JWindow? AWT, Swing, JavaFX & SWT 2
B Standard Icons wo findet man diese? AWT, Swing, JavaFX & SWT 20
N Button soll die Größ eines Icons haben AWT, Swing, JavaFX & SWT 5
G Swing Icons von JLabel zur Laufzeit ändern AWT, Swing, JavaFX & SWT 3
sylo Position des Icons bei JMenuItem AWT, Swing, JavaFX & SWT 11
L Swing Bilder im Icons-Ordner AWT, Swing, JavaFX & SWT 4
T Swing Icons mit Transparentz... AWT, Swing, JavaFX & SWT 12
Dit_ Verschiedene Icons in einer JTable-Zelle AWT, Swing, JavaFX & SWT 2
L Wieso werden die Icons nicht dargestellt? AWT, Swing, JavaFX & SWT 2
M Icons in Jar AWT, Swing, JavaFX & SWT 3
M Mehrere Icons in einer JComponent AWT, Swing, JavaFX & SWT 5
T Icons in jar AWT, Swing, JavaFX & SWT 17
A JLabel, Icons und GridLayout AWT, Swing, JavaFX & SWT 3
S JTree rendern der Knoten [+] und [-], nicht der Node Icons AWT, Swing, JavaFX & SWT 2
G Icons verkleinern AWT, Swing, JavaFX & SWT 4
M icons für die java.swing components wie jbutton etc AWT, Swing, JavaFX & SWT 5
G Verhindern, das AbstractAction Text und Icons überschreibt? AWT, Swing, JavaFX & SWT 3
DeeDee0815 SWT-Buttons, Icons und die Win32-API AWT, Swing, JavaFX & SWT 3
T Standard Icons AWT, Swing, JavaFX & SWT 7
G Wo finde ich Icons zum runterladen AWT, Swing, JavaFX & SWT 3
S JTable mit Icons in DB speichern AWT, Swing, JavaFX & SWT 10
S Hochauflösende ICONS für Lebensmittel? AWT, Swing, JavaFX & SWT 7
J Icons ueber getRessource lesen AWT, Swing, JavaFX & SWT 5
S JButton auf verkleiner auf größe eines Icons AWT, Swing, JavaFX & SWT 5
A Icons von Kontextmenüeinträgen verschwinden (SWT) AWT, Swing, JavaFX & SWT 2
D Komponenten mit zusätzlichen Icons AWT, Swing, JavaFX & SWT 2
F 2 icons in jtabbedpane, links und rechts von label AWT, Swing, JavaFX & SWT 2
P JMenu / JMenuItem durch Rekursion Icons entfernen AWT, Swing, JavaFX & SWT 4
B PNG-Icons in Toolbar einbinden AWT, Swing, JavaFX & SWT 3
C Icons und Bilder in der JAR AWT, Swing, JavaFX & SWT 9
S Multiselektieren von Icons AWT, Swing, JavaFX & SWT 5
R JTree ohne visible Root aber mit Icons ? AWT, Swing, JavaFX & SWT 2
F Icons des JTrees austauschen AWT, Swing, JavaFX & SWT 2
G JTabel und Icons AWT, Swing, JavaFX & SWT 9
Q CloseAndMaxTabbedPane Icons werden nicht angezeigt AWT, Swing, JavaFX & SWT 4
M Java Datei Icons AWT, Swing, JavaFX & SWT 2
M Windows file icons in Java verwenden AWT, Swing, JavaFX & SWT 2
S JAR -> Icons werden nicht mehr angezeigt AWT, Swing, JavaFX & SWT 11
K icons sauber anzeigen (an hintergrund angepasst) AWT, Swing, JavaFX & SWT 4
Z Problem mit Icons in JTable AWT, Swing, JavaFX & SWT 3
R SWT: Icons im Table vor den Einträgen AWT, Swing, JavaFX & SWT 3
D Auf System-Icons wie die aus JOptionPane zugreifen? AWT, Swing, JavaFX & SWT 6
Hotkey Freie Icons für Anwendung mit Java Look&Feel AWT, Swing, JavaFX & SWT 4
S JTree // Icons AWT, Swing, JavaFX & SWT 2
S [JTree] Icons ohne DefaultTreeCellRenderer AWT, Swing, JavaFX & SWT 6
J Icons mit Text als Menü AWT, Swing, JavaFX & SWT 2
F SkinLF - GTK Icons werden nicht genutz - KDE schon - why? AWT, Swing, JavaFX & SWT 8
F JTree mit anderen Icons AWT, Swing, JavaFX & SWT 7
W Websites mit freien Icons AWT, Swing, JavaFX & SWT 4
G Warum gehen meine Icons/Images nicht weg? AWT, Swing, JavaFX & SWT 2
I Icons in JLists AWT, Swing, JavaFX & SWT 2
G Icons in CTabFolder AWT, Swing, JavaFX & SWT 3
L Buttons und Icons AWT, Swing, JavaFX & SWT 2
W JRadioButtonMenuItem (Icons) AWT, Swing, JavaFX & SWT 13
Z Problemen mit Icons? AWT, Swing, JavaFX & SWT 5
G Overlay-Icons über JTextField AWT, Swing, JavaFX & SWT 5
A Icons und Bilder bei EXE-Datei nicht da AWT, Swing, JavaFX & SWT 5
S JTree Datei Icons ? AWT, Swing, JavaFX & SWT 28
M icons im menubar ? AWT, Swing, JavaFX & SWT 5
G standard system icons AWT, Swing, JavaFX & SWT 1
P Swing Mehrere JLabels mit ImageIcon in JPanel lesen AWT, Swing, JavaFX & SWT 1
kilopack15 JLabels im Array erzeugen AWT, Swing, JavaFX & SWT 2
E Swing Miserable Performance beim Ändern der Hintergrundfarbe von JLabels AWT, Swing, JavaFX & SWT 3
A Swing JLabels in einer ForEach Schleife an den JPanel anheften (UNO Netzwerkspiel) AWT, Swing, JavaFX & SWT 1
B Swing HTML in JLabels AWT, Swing, JavaFX & SWT 6
D Event Handling Aus einer anderen Klasse heraus einen Text des JLabels ändern. AWT, Swing, JavaFX & SWT 12
C Swing BufferedImage zeichnen und JLabels setzen. AWT, Swing, JavaFX & SWT 17
J Swing Frage zur Vorgehensweise (JTable?, JLabels?) AWT, Swing, JavaFX & SWT 8
I Jlabels Addieren AWT, Swing, JavaFX & SWT 3
X Swing ListDialog von Oracle mit JLabels AWT, Swing, JavaFX & SWT 2
T Swing Drag and Drop - JLabels tauschen statt überschreiben AWT, Swing, JavaFX & SWT 11
M Position eines JLabels mit getX() auslesen AWT, Swing, JavaFX & SWT 2
M Position eines JLabels speichern? AWT, Swing, JavaFX & SWT 3
S Swing Größe von JLabels verändern sich in einem Panel unterschiedlich AWT, Swing, JavaFX & SWT 6
N Meine JLabels werden nicht angezeigt AWT, Swing, JavaFX & SWT 6
L Name des JLabels auslesen bei Mouseclick AWT, Swing, JavaFX & SWT 2
C Swing JLabels entfernen und neue einfügen AWT, Swing, JavaFX & SWT 6
S Textfelder JLabels AWT, Swing, JavaFX & SWT 3
J JLabels repainten AWT, Swing, JavaFX & SWT 4
D Swing JLabels in einer Schleife aktualisieren AWT, Swing, JavaFX & SWT 2
Balbes Swing Mehrere JLabels vereinen AWT, Swing, JavaFX & SWT 2
M In Jlist auf Änderungen von mehreren JLabels reagieren AWT, Swing, JavaFX & SWT 3
bugmenot Dynamisch erzeugte jLabels werden nicht angezeigt. AWT, Swing, JavaFX & SWT 5
S Probleme beim Neuzeichnen eines JLabels AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben