JComboBox Strings aus JTextFields zuordnen

Diskutiere JComboBox Strings aus JTextFields zuordnen im AWT, Swing, JavaFX & SWT Bereich.
D

dumstay

Hallo,
ich habe nun lange versucht Google zu durchstöbern um eine Antwort auf meine Frage zu erhalten. Vergebens. Nun versuche ich es hier:

Was ich versuche ist, in meine JComboBox, 3 verschiedene Werte aus 3 verschiedenen JTextFields als ein Punkt (bspw: "Wert1" + "Wert2"+ "Wert3") in der JComboBox zu speichern.
Alle 3 TextFields sind editierbar. Ich glaube mein Controller und view sind nicht richtig miteinander verknüpft.
(Ich habe vieles rausgeschnitten wie bspw container.add... damit es übersichtlicher wird.
Mir gehts es hier lediglich um die Frage wieso mein Button nichts macht.
(Die Klassen sind in verschiedenen Packages)
Java:
Java:
Im Controller steht also

package controller;

import java.awt.Container;
import java.awt.event.*;

import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JTextField;

import model.Model;
import view.View;

import java.io.File;

public class Controller {
    private View frame;
    private Model model;
 
    public SpeichernListener getSpeichernListener() {
        return new SpeichernListener();
    }
 
    public void setView(View frame) {
        this.frame = frame;
        frame.getSpeichern();
    }
 
    class SpeichernListener implements ActionListener {
     
        @Override
        public void actionPerformed(ActionEvent ae)
        {
            model = new Model();
            JTextField sources = (JTextField) ae.getSource();
            JComboBox source = (JComboBox) ae.getSource();
            Container c = (Container) sources.getParent();
         
            frame.setTitel(frame.getTitel1().getText(),frame.getTitel2().getText(), frame.getTitel3().getText());    
        }
     
    }

}

Und im View steht folgendes:
package view;

import javax.swing.*;
import javax.swing.border.TitledBorder;

import controller.Controller;

import java.awt.*;
public class View extends JFrame{
    private Container container;
    private JLabel beschriftung;
    private Controller controlleri;
   private JComboBox box;
    private JTextField titel1, titel2, titel3;
    private JButton speichern;

    public View () {
     
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            System.out.println("UIManager.getSystemLookAndFeelClassName() = "
                    + UIManager.getSystemLookAndFeelClassName());
        } catch (Exception e) {
            System.out.println("Error setting native LAF: " + e);
        }
     
                beschriftung = new JLabel("VL Suche");
     
        container = getContentPane();
     
        titel1 = new JTextField("M");
        titel1.setText("     ");
        titel1.setEditable(true);
        titel2 = new JTextField("M");
        titel2.setText("     ");
        titel2.setEditable(true);
        titel3 = new JTextField("M");
        titel3.setText("     ");
        titel3.setEditable(true);
        box = new <String>JComboBox ();
        speichern = new JButton ("Speichern");
     
        public void setController(Controller controller) {
            this.controlleri = controller;
            speichern.addActionListener(this.controlleri.getSpeichernListener());
        }

 
    public JComboBox getButton() {
        return button;
    }


    public void setTitel(String titel, String titelzwei, String titeldrei ) {
        this.box.addItem(titel + titelzwei + titeldrei);

    }
     
        public JTextField getTitel1() {
        return titel1;
    }

    public void setTitel1(JTextField titel1) {
        this.titel1 = titel1;
    }

    public JTextField gettitel2() {
        return titel2;
    }

    public void settitel2(JTextField titel2) {
        this.titel2 = titel2;
    }

    public JTextField gettitel3() {
        return titel3;
    }

    public void setTitel3(JTextField titel3) {
        this.titel3 = titel3;
    }
Über eine Hilfe wäre ich sehr dankbar.
Mit freundlichen Grüßen
 
Zuletzt bearbeitet:
mihe7

mihe7

Ich gehe mal davon aus, dass das Fehlen der Block-Klammer des View-Konstruktors ein Copy & Paste-Fehler ist und setController außerhalb des Konstruktors steht. Dann bleibt die Frage: wo wird setController aufgerufen?

BTW: Das Look-and-Feel setzt man nicht in der View.
 
D

dumstay

Dankeschön. Das Problem lag darin, dass ich in der Main Klasse keinen controller erzeugt hatte und mit dem Programm verbunden habe...
 
Thema: 

JComboBox Strings aus JTextFields zuordnen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben