Combobox bild anklicken

mub

Neues Mitglied
Hallo miteinander,

ich versuche gerade herauszufinden, wie ich Bilder anzeigen lassen kann, sobald ich in der ComboBox eine Auswahl anklicke. Ich habe eine Combobox mit den jeweiligen Unterpunkten und eine ImageView angelegt. Habe auch den Pfad für die Bilder schon angegeben.
Die Frage ist, wie ich das mit dem EventHandler etc. machen muss. Ich weiß nicht, wie ich ein Element von der ComboBox anspreche. Z.B "Wenn `Adapter` von der ComboBox angeklickt wird, soll das Bild von Adapter (adapter.png) erscheinen."
Ich bitte um Code Beispiel..
Code:
package pac;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.ResourceBundle;

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;

import javafx.collections.FXCollections;
import javafx.event.ActionEvent;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.scene.control.Button;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.control.Labeled;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.Text;

public class Controller {

    public static final int WIN_WIDTH = 1200;
    public static final int WIN_HEIGHT = 800;

    private Pane root;
    private Text text;
    private TextField textfield;
    private TextArea textarea;
    private Label label;
    private ComboBox cb = new ComboBox(FXCollections.observableArrayList("AbstractFactory", "Adapter", "Bridge",
            "Builder", "Chain of Responsibility", "Command", "Composite", "Decorator", "Facade", "Factory Method",
            "Flyweight", "Interpreter", "Iterator", "Mediator", "Memento", "Observer", "Prototyp", "Proxy", "Singleton",
            "State", "Strategy"));
    private ImageView AbstractFactory;
    private ImageView Adapter;
    private ImageView Bridge;
    private ImageView Builder;
    private ImageView ChainofResponsibility;
    private ImageView Command;
    private ImageView Composite;
    private ImageView Decorator;
    private ImageView Facade;
    private ImageView FactoryMethod;
    private ImageView Flyweight;
    private ImageView Interpreter;
    private ImageView Iterator;
    private ImageView Mediator;
    private ImageView Memento;
    private ImageView Observer;
    private ImageView Prototyp;
    private ImageView Proxy;
    private ImageView Singleton;
    private ImageView State;
    private ImageView Stategy;
   
    public void init() {

        root = new Pane();
        text = new Text("Design Pattern Searching Machine");
        text.setFont(new Font("Arial",20));
        textfield = new TextField("Enter your key");
        textfield.setPrefColumnCount(40);
        textarea = new TextArea();
        label= new Label("Please select a Pattern");
       
        text.setLayoutX(50);
        text.setLayoutY(90);
        textfield.setLayoutX(50);
        textfield.setLayoutY(130);
        textarea.setLayoutX(50);
        textarea.setLayoutY(180);
        textarea.setPrefHeight(450);
        textarea.setScrollTop(Double.MAX_VALUE);
        textarea.setWrapText(true);
        label.setLayoutX(650);
        label.setLayoutY(110);
        cb.setLayoutX(650);
        cb.setLayoutY(130);
       
       
        root.getChildren().addAll(text, textfield, textarea, label, cb);
   
    }
        public void ActionPerfomed(Event e) throws FileNotFoundException, MalformedURLException {
            e.getEventType();
            fotosLaden(); // Aktualisiere ImageViews
            System.out.println("Hallo");
        }


        void fotosLaden() throws FileNotFoundException, MalformedURLException {

            // Lege Array mit allen Dateien im Ordner Fotobox an
            File file = new File("/Users/Erkus/Desktop/patternimages");
            File[] files = file.listFiles();
            // Sortieren: Neuere Datei oben
            Arrays.sort(files, new Comparator<Object>() {
                public int compare(Object o1, Object o2) {
                    File f0 = (File) o1, f1 = (File) o2;
                    long last0 = f0.lastModified(), last1 = f1.lastModified();
                    return (int) (last1 - last0);
                }
            });

            // Gebe die Dateinamen wie oben sortiert aus
           
           
            for (int i = 0; i < files.length; i++) {
                System.out.println(files[i]);
            }

            // Sortiere die Fotos in den ImageView ein
            Image AbstractFactory = null;
            ImageView Adapter = null;
            ImageView Bridge = null;
            Image Builder = null;
            Image ChainOfResponsibility = null;
            Image Command = null;
            Image Composite = null;
            Image Decorator = null;
            Image Facade = null;
            Image FactoryMethod = null;
            Image Fylweight = null;
            Image Interpreter = null;
            Image Iterator = null;
            Image Mediator = null;
            Image Memento = null;
            Image Observer = null;
            Image Prototype = null;
            Image Poxy = null;
            Image Singleton = null;
            Image State = null;
            Image Strategy = null;
            Image TemplateMethod = null;
            Image Visitor = null;

            try {
                AbstractFactory = new Image(new FileInputStream(files[0]));
                //Adapter = new Image(new FileInputStream(files[1]));
                //Bridge = new Image(new FileInputStream(files[2]));
                Builder = new Image(new FileInputStream(files[3]));
                ChainOfResponsibility = new Image(new FileInputStream(files[4]));
                Command = new Image(new FileInputStream(files[5]));
                Composite = new Image(new FileInputStream(files[6]));
                Decorator = new Image(new FileInputStream(files[7]));
                Facade = new Image(new FileInputStream(files[8]));
                FactoryMethod = new Image(new FileInputStream(files[9]));
                //Flyweight = new Image(new FileInputStream(files[10]));
                Interpreter = new Image(new FileInputStream(files[11]));
                Iterator = new Image(new FileInputStream(files[12]));
                Mediator = new Image(new FileInputStream(files[13]));
                Memento = new Image(new FileInputStream(files[14]));
                Observer = new Image(new FileInputStream(files[15]));
                Prototype = new Image(new FileInputStream(files[16]));
                // Proxy = new Image(new FileInputStream(files[17]));
                Singleton = new Image(new FileInputStream(files[18]));
                State = new Image(new FileInputStream(files[19]));
                Strategy = new Image(new FileInputStream(files[20]));
                TemplateMethod = new Image(new FileInputStream(files[21]));
                Visitor = new Image(new FileInputStream(files[22]));

            } catch (FileNotFoundException e) {
                e.printStackTrace();
                System.exit(1);
            }

            //AbstractFactory = new ImageView();
            Adapter = new ImageView();
            //Bridge = new ImageView(Bridge);
            /*Builder = new ImageView(Builder);
            ChainOfResponsibility = new ImageView(ChainofResponsibility);
            Command = new ImageView(Command);
            Composite = new ImageView(Composite);
            Decorator = new ImageView(Decorator);
            Facade = new ImageView(Facade);
            FactoryMethod = new ImageView(FactoryMethod);
            Flyweight = new ImageView(Flyweight);
            Interpreter = new ImageView(Interpreter);
            Iterator = new ImageView(Iterator);
            Mediator = new ImageView(Mediator);
            Memento = new ImageView(Memento);
            Observer = new ImageView(Observer);
            Prototype = new ImageView(Prototype);
            Proxy = new ImageView(Proxy);
            Singleton = new ImageView(Singleton);
            State = new ImageView(State);
            Strategy = new ImageView(Strategy);
            TemplateMethod = new ImageView(TemplateMethod);
            Visitor = new ImageView(Visitor);
*/
           
           
        }

   

   

    public void ReadText() throws IOException {

        try {
            BufferedReader in = new BufferedReader(new FileReader("gof.txt"));
            StringBuilder strBuilder = new StringBuilder();
            String str;
            while ((str = in.readLine()) != null) {
                textarea.appendText(str + "\n");
               
            }
            in.close();
        } catch (IOException e) {
            e.toString();
        }
       
       
       
       
        textfield.setOnKeyPressed(new EventHandler<KeyEvent>() {

            @Override
            public void handle(KeyEvent event) {
                if (event.getCode() == KeyCode.ENTER)  {
                    String text = textarea.getText();
                  Labeled errorText = null;
                if (textfield.getText() != null && !textfield.getText().isEmpty()) {
                        int index = textarea.getText().indexOf(textfield.getText());
                       
                        textarea.getText();
                       
                        if (index == -1) {
                            errorText.setText("Search key Not in the text");
                        } else {
                          //  errorText.setText("Found");
                            textarea.selectRange(index, index + textfield.getLength());
                           
                        }  
                  
                    } else {
                        errorText.setText("Missing search key");
                       

                    }
                }
            }
            });
    }
   

    public Pane getPane() {
        return this.root;
    }
}
 

TheWhiteShadow

Bekanntes Mitglied
Ohne mich jetzt groß in Java-FX auszukennen hier mal meine Vorgehensweise:
Wenn meine Werte keine Strings sind, verwende ich bei einer Combobox immer den ausgewählten Index und lege ein Array mit meinen Werten an bei dem die Position mit dem Index der Combobox übereinstimmt. Dann kann ich einfach mit dem Index auf meinen Wert zugreifen. Alternativ könntest du mit dem String und einer HashMap arbeiten.
 

Robat

Top Contributor
Angenommen du hättest die Bilder in einer Map<String, Image> und in der ComboBox sind die Namen der Bilder dann könntest du sowas machen:
Java:
combobox.valueProperty().addChangeListener((obs, oldVal, newVal) -> {
     imageView.setImage(map.get(newVal));
});

Ps: eher als Pseudocode zu verstehen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Element aus comboBox mit observableList löschen AWT, Swing, JavaFX & SWT 3
T Combobox mit Autocomplete-Funktion AWT, Swing, JavaFX & SWT 7
J Eingaben aus Textfield & ComboBox speichern und in ComboBox wieder ausgeben AWT, Swing, JavaFX & SWT 3
N Promt Text der Combobox AWT, Swing, JavaFX & SWT 0
Doppel JavaFX ComboBox AWT, Swing, JavaFX & SWT 5
P JavaFX ClassCastException bei ComboBox.getValue AWT, Swing, JavaFX & SWT 4
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
M Swing Java Swing/AWT Combobox Bug AWT, Swing, JavaFX & SWT 3
L JavaFX Wiederspenstige ComboBox AWT, Swing, JavaFX & SWT 0
P Combobox und Enum AWT, Swing, JavaFX & SWT 3
L ComboBox Wert automatisch auswählen AWT, Swing, JavaFX & SWT 6
L Methode zum Füllen einer ComboBox AWT, Swing, JavaFX & SWT 4
K Nullpointer Combobox Listener AWT, Swing, JavaFX & SWT 2
K JavaFX Combobox, Textfield & setOnMouseClicked AWT, Swing, JavaFX & SWT 2
it_is_all Swing Button, ComboBox,... -- Unterschied: NetBeans Design <-> Ausführung AWT, Swing, JavaFX & SWT 2
D JavaFX ComboBox String setzen AWT, Swing, JavaFX & SWT 20
offi Combobox in TableCell AWT, Swing, JavaFX & SWT 1
D Javafx Combobox Abfrage aus mysql AWT, Swing, JavaFX & SWT 8
K Event Handling ComboBox Event Handler AWT, Swing, JavaFX & SWT 7
MrSnake ComboBox-Einträge werden unsichtbar AWT, Swing, JavaFX & SWT 0
L ComboBox: slider positionieren AWT, Swing, JavaFX & SWT 0
M JavaFX ComboBox: Update zur Laufzeit AWT, Swing, JavaFX & SWT 16
M JavaFX Combobox bindBidirectional AWT, Swing, JavaFX & SWT 4
D [Anfänger]ComboBox erstellt Einträge in einer anderen ComboBox AWT, Swing, JavaFX & SWT 3
T JavaFX Editable Combobox Text-Selektierung nach Trigger AWT, Swing, JavaFX & SWT 4
H Combobox aktualisieren AWT, Swing, JavaFX & SWT 2
G Swing ComboBox: Auswahl eines Items der Liste durch Eingabe eines Buchstabens AWT, Swing, JavaFX & SWT 3
M JavaFX ComboBox AWT, Swing, JavaFX & SWT 5
T Problem: ComboBox und addItem AWT, Swing, JavaFX & SWT 5
J ComboBox als Filter benutzen AWT, Swing, JavaFX & SWT 1
M ausgewählte Inhalt von ListItem inn ComboBox in der Tabelle speichern AWT, Swing, JavaFX & SWT 0
Developer_X Java JTable - Combobox + Checkbox - Cellrenderer + Editor AWT, Swing, JavaFX & SWT 3
G Dynamische ComboBox AWT, Swing, JavaFX & SWT 3
U Combobox mit individuellen Texten AWT, Swing, JavaFX & SWT 5
M JavaFX Combobox - Item Auswahl mit Tasten AWT, Swing, JavaFX & SWT 8
F JavaFX Daten aus Tabelle in ComboBox AWT, Swing, JavaFX & SWT 9
C Beschriftungen von Tabellenspalten mit Combobox aussuchen AWT, Swing, JavaFX & SWT 2
G JavaFX ComboBox .getItems().add() Problem AWT, Swing, JavaFX & SWT 9
D Swing [Frage] ComboBox + Label AWT, Swing, JavaFX & SWT 3
F SWT Problem mit Tabelle und Combobox in einem Wizard AWT, Swing, JavaFX & SWT 5
B JAVAFX icon in ComboBox einfügen AWT, Swing, JavaFX & SWT 5
W Swing Combobox Abhängigkeit AWT, Swing, JavaFX & SWT 1
S ComboBox-Werte aus einem Array an Textfields übergeben AWT, Swing, JavaFX & SWT 3
A Swing GUI mit ComboBox, wenn Item ausgewählt wurde neues GUI AWT, Swing, JavaFX & SWT 7
S Combobox aktualisieren AWT, Swing, JavaFX & SWT 3
B Erstellen eigener Combobox ("CellFactory") AWT, Swing, JavaFX & SWT 4
C Swing ComboBox - ActionListener deaktivieren AWT, Swing, JavaFX & SWT 2
A combobox automatisch in ein textfeld wechseln AWT, Swing, JavaFX & SWT 3
J Swing Drive-ComboBox AWT, Swing, JavaFX & SWT 7
C TextFeld in Verbindung zur ComboBox automatisch aktualisieren AWT, Swing, JavaFX & SWT 7
L Swing Model für ComboBox AWT, Swing, JavaFX & SWT 14
H Combobox in einer einzelnen Zelle der Jtable AWT, Swing, JavaFX & SWT 2
T Java Combobox Problem AWT, Swing, JavaFX & SWT 3
C SWT Combobox mit Textdatei füllen AWT, Swing, JavaFX & SWT 2
M comboBox Listener? AWT, Swing, JavaFX & SWT 2
R Datenbanktabellen in Combobox AWT, Swing, JavaFX & SWT 3
C Combobox bei Tabellenänderung mit aktualisieren AWT, Swing, JavaFX & SWT 11
1 CellEditor mit ComboBox richtig beenden AWT, Swing, JavaFX & SWT 4
L SWT Actionlistener Combobox öffnen AWT, Swing, JavaFX & SWT 4
E Swing CellEditor mit Combobox durch Tastatureingabe editieren?! AWT, Swing, JavaFX & SWT 3
GianaSisters Swing ComboBox im jTable (in bestimmter Zelle nicht über die ganze Spalte) AWT, Swing, JavaFX & SWT 4
T Daten mittels ComboBox in ein JTable adden AWT, Swing, JavaFX & SWT 7
N Filternde Combobox in JTable verliert Fokus nach erster Eingabe AWT, Swing, JavaFX & SWT 2
F Wert zu Eintrag in ComboBox speichern?! AWT, Swing, JavaFX & SWT 7
P Swing ComboBox(en) in JTable auslesen und ausgeben AWT, Swing, JavaFX & SWT 11
M Index von Combobox AWT, Swing, JavaFX & SWT 20
L ComboBox in Action AWT, Swing, JavaFX & SWT 4
D ComboBox & CellListRenderer AWT, Swing, JavaFX & SWT 6
D ComboBox-Model mit Observer AWT, Swing, JavaFX & SWT 3
B Taschenrechner mit ComboBox AWT, Swing, JavaFX & SWT 7
T ComboBox auslesen AWT, Swing, JavaFX & SWT 11
P Combobox liesst falschen Wert AWT, Swing, JavaFX & SWT 10
C Combobox im JFrame aus Datenbank befüllen AWT, Swing, JavaFX & SWT 6
M Combobox soll Farbe einer Komponente setzen AWT, Swing, JavaFX & SWT 2
M Swing ComboBox ein SelectedItem übergeben/anzeigen AWT, Swing, JavaFX & SWT 7
J Werte aus Combobox speichern AWT, Swing, JavaFX & SWT 3
J Combobox als Filterkriterium (Gruppierung) in JTable AWT, Swing, JavaFX & SWT 7
R Swing ComboBox und doppelter Event!? AWT, Swing, JavaFX & SWT 10
M SWT Wie Textfeld hinzufügen, nach Auswahl von einem bestimmten Combobox-item? AWT, Swing, JavaFX & SWT 3
M SWT ComboBox mit DB-Inhalten Designfrage AWT, Swing, JavaFX & SWT 5
W MouseListener im editable ComboBox AWT, Swing, JavaFX & SWT 14
W Combobox mit eingabefeld AWT, Swing, JavaFX & SWT 7
T Editable ComboBox / kein Weiterspringen AWT, Swing, JavaFX & SWT 12
M Combobox in JTable AWT, Swing, JavaFX & SWT 4
S Swing ComboBox aus Array befüllen AWT, Swing, JavaFX & SWT 2
K Per ComboBox Dateien einlesen AWT, Swing, JavaFX & SWT 23
0 Hintergundfarbe von editierbarer ComboBox ändern AWT, Swing, JavaFX & SWT 2
M Frage zu ComboBox AWT, Swing, JavaFX & SWT 7
O Bitte um Hilfe bei ComboBox in TableHeader AWT, Swing, JavaFX & SWT 9
A NetBeans und ComboBox AWT, Swing, JavaFX & SWT 2
SuperSeppel13 Combobox zur Farbwahl kollidiert mit NimbusLookAndFeel AWT, Swing, JavaFX & SWT 7
D ComboBox(Model) mit dummyItem AWT, Swing, JavaFX & SWT 10
D Inhalt von Textfield nach ComboBox AWT, Swing, JavaFX & SWT 2
GilbertGrape nochmal editierbare Combobox AWT, Swing, JavaFX & SWT 3
GilbertGrape JTable mit Combobox-Editierung schon nach einem Klick AWT, Swing, JavaFX & SWT 7
E Swing Button ActionListener Infos aus Textfield und ComboBox AWT, Swing, JavaFX & SWT 3
G ComboBox wird nicht angezeigt beim anhängen an eine Gruppe AWT, Swing, JavaFX & SWT 2
G Combobox Event AWT, Swing, JavaFX & SWT 4
G ComboBox aktualisieren AWT, Swing, JavaFX & SWT 13
C Binding eines EntityBean als SelectionInList in ComboBox AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben