Bitte um Hilfe bei JComboBox mit Array

Jats

Aktives Mitglied
Hey, ich wollte bei meinem Taschenrechner ein paar Funktionen in eine Combobox packen, allerdings funktioniert das bei mir nicht so richtig.
Bis hier bin ich gekommen:

Java:
import java.awt.*;
import javax.swing.*;
import java.awt.font.*;
import java.awt.Label.*;
import java.lang.Object.*;
import java.awt.event.*;
import java.awt.Toolkit;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;

public class Taschenrechner extends JFrame implements ActionListener, FocusListener {

    private double x;
    private double y;
    private int counter=0, j=0, index=-1;
    private double ergebnis;
    JTextField tEingabe1;
    JTextField tEingabe2;
    JTextField tAusgabe;
    JTextArea tRechnung;
    JLabel lCopyright;
    JLabel lx;
    JLabel ly;
    JComboBox cBCopy;

    JButton [] btn = new JButton[18];
    String [] buttonName = {"plus" , "minus" , "mal" , "geteilt" , "Wurzel" , "x^2" , "x^y" , "e^x" , "10^x" , "ln(x)" , "log(x)" , "sin(x)" , "cos(x)" , "tan(x)" , "ggT(x,y)" , "kgV(x,y)" , "PI" , "Ans" };
    String [] cBox = {"x kopieren" , "y kopieren" , "Ergebnis kopieren" };

    public Taschenrechner() {

        JFrame jFr = new JFrame(); 
        setSize(600,600);                           
        setBounds(212,84,600,600);
        setLayout(null);   
        setResizable(false);

        setDefaultCloseOperation(3);
        setTitle("Taschenrechner");

        tEingabe1= new JTextField(j+"");
        tEingabe1.setBounds(30,50,150,60);
        add(tEingabe1);
        tEingabe1.addFocusListener(this);

        tEingabe2=new JTextField(j+"");
        tEingabe2.setBounds(410,50,150,60);
        add(tEingabe2);
        tEingabe2.addFocusListener(this);

        tAusgabe=new JTextField("Ergebnis");
        tAusgabe.setBounds(30,110,530,80);
        add(tAusgabe);
        tAusgabe.addFocusListener(this);

        tRechnung=new JTextArea("Rechnung");
        tRechnung.setBounds(180,50,230,60);
        add(tRechnung);
        tRechnung.setLineWrap(true);

        lCopyright=new JLabel("Calc(this) v.1.x Copyright © by Jats");
        lCopyright.setBounds(185,535,300,20);
        lCopyright.setFont(new Font ("Verdana", Font.PLAIN, 12));
        add(lCopyright);

        lx=new JLabel("x:");
        lx.setBounds(30,10,150,60);
        add(lx);

        ly=new JLabel("y:");
        ly.setBounds(410,10,150,60);
        add(ly);

        cBCopy = new JComboBox(cBox);
        cBCopy.setBounds(230,250,120,30);
        add(cBCopy);
        cBCopy.addActionListener(this);

        for (int i=0;i<18;i++) {
            btn[i] = new JButton("");
        }
        for (int i=0;i<18;i++) { //THX @ Niklas Schultheiß
            if(i%6==0 && i!=0) {
                counter++; j++;
            }
            btn[i].setText(buttonName[i]);
            btn[i].setBounds(100+130*counter,300+i*40-j*40*6,120,30);
            add(btn[i]);
            btn[i].addActionListener(this);
        }            

        setVisible(true);

    }    

    @Override   
    public void focusGained(FocusEvent e) {
        if(e.getSource()==tEingabe1 && tEingabe1.getText().equals("0")){
            tEingabe1.setText("");
        }
        if(e.getSource()==tEingabe2 && tEingabe2.getText().equals("0")){
            tEingabe2.setText("");
        }
        else {
        }
    }

    @Override 
    public void focusLost(FocusEvent e) {

    }

    public void addieren() {
        ergebnis = x+y;
        tAusgabe.setText(ergebnis+"");
        tRechnung.setText("Rechnung: \n"+x+"+"+y+"="+ergebnis);
    }

    public void substrahieren() {
        ergebnis = x-y;
        tAusgabe.setText(ergebnis+"");
    }

    public void multiplizieren() {
        ergebnis = x*y;
        tAusgabe.setText(ergebnis+"");
    }

    public void dividieren() {
        ergebnis = x/y;
        tAusgabe.setText(ergebnis+"");
    }

    public void wurzel() {
        ergebnis = Math.sqrt(x);
        tAusgabe.setText(ergebnis+"");
    }

    public void quadrieren() {
        ergebnis = Math.pow(x,2);
        tAusgabe.setText(ergebnis+"");
    }

    public void potenzieren() {
        ergebnis = Math.pow(x,y);
        tAusgabe.setText(ergebnis+"");
    }

    public void ehochx() {
        ergebnis = Math.pow(Math.E,y);
        tAusgabe.setText(ergebnis+"");
    }

    public void ZehnHochx() {
        ergebnis = Math.pow(10,x);
        tAusgabe.setText(ergebnis+"");
    }

    public void ln() {
        ergebnis = Math.log(x);
        tAusgabe.setText(ergebnis+"");
    }

    public void log() {      
        ergebnis = Math.log(x)/Math.log(y);
        tAusgabe.setText(ergebnis+"");
    }

    public void sin() {
        ergebnis = Math.sin(x);
        tAusgabe.setText(ergebnis+"");
    }

    public void cos() {
        ergebnis = Math.cos(x);
        tAusgabe.setText(ergebnis+"");
    }

    public void tan() {
        ergebnis = Math.tan(x);
        tAusgabe.setText(ergebnis+"");
    }

    public double ggT(double zahl1, double zahl2) {
        double r;
        do {
            r = x%y;
            x = y;
            y = r;
        }
        while(y!=0);
        ergebnis = x;
        tAusgabe.setText(ergebnis+"");
        return x;
    }

    public void kgV() {
        double c = x;
        double d = y;
        tAusgabe.setText(x*y/ggT(c,d)+"");
    }

    public void answer() {
        tEingabe1.setText(tAusgabe.getText()+"");
    }

    public void actionPerformed(ActionEvent e) {

        x = new Double(tEingabe1.getText()).doubleValue();
        y = new Double(tEingabe2.getText()).doubleValue();

        for(int i=0;i<3;i++) {
            counter++;
        }

        if (e.getSource()==btn[0]) {
            addieren();
        }

        if (e.getSource()==btn[1]) {
            substrahieren();
        }

        if (e.getSource()==btn[2]) {
            multiplizieren();
        }

        if (e.getSource()==btn[3]) {
            dividieren();
        }

        if (e.getSource()==btn[4]) {
            wurzel();
        }

        if (e.getSource()==btn[5]) {
            quadrieren();
        }

        if (e.getSource()==btn[6]) {
            potenzieren();
        }

        if (e.getSource()==btn[7]) {
            ehochx();
        }

        if (e.getSource()==btn[8]) {
            ZehnHochx();
        }

        if (e.getSource()==btn[9]) {
            ln();
        }

        if (e.getSource()==btn[10]) {
            log();
        }

        if (e.getSource()==btn[11]) {
            sin();
        }

        if (e.getSource()==btn[12]) {
            cos();
        }

        if (e.getSource()==btn[13]) {
            tan();
        }

        if (e.getSource()==btn[14]) {
            ggT(x,y);
        }

        if (e.getSource()==btn[17]) {
            answer();
        }

        counter=-1;
        Object o = e.getSource();

        if(o==cBox)
        {
            counter=cBox.getSelectedIndex();          
        }
        
        index=count;
        cBox.removeActionListener(cBox.getActionListeners()[0]);
        cBox.setSelectedIndex(index);
        
        if(o.getSource()==cBox[0]) {
            Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
                new StringSelection(tEingabe1.getText()), null);
        }

        if(o.getSource()==cBox[1]) {
            Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
                new StringSelection(tEingabe2.getText()), null);
        }

        if(o.getSource()==cBox[2]) {
            Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
                new StringSelection(tAusgabe.getText()), null);
        }
    }

}

Jetzt sagt man mir allerdings, dass die Methode .getSelectedIndex nicht existiert.
Ich weiß zwar, dass ich den Index holen muss, aber ich habe keine Ahnung, wie ich das hier einbauen muss ..
Hoffe, mir kann jemand helfen :)
 

eRaaaa

Top Contributor
cBox ist ja auch nicht deine Combobox sondern dein String-Array !
Bist du da evtl. ein wenig durcheinander gekommen ? (wäre kein Wunder bei der Namenswahl)
Weil
Java:
  Object o = e.getSource();
 
        if(o==cBox)
sieht auch ein wenig merkwürdig aus, wie sollte das String-Array e.getSource() werden? ;/
 

Jats

Aktives Mitglied
Okay, das sieht jetzt so aus ..

Java:
        counter=-1;

        if(e.getSource()==cBCopy)
        {
        counter=cBCopy.getSelectedIndex();          
        }

        index=counter;
        cBCopy.removeActionListener(cBCopy.getActionListeners()[0]);
        cBCopy.setSelectedIndex(index);

        if(e.getSource()==cBox[0]) {
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
        new StringSelection(tEingabe1.getText()), null);
        }

        if(e.getSource()==cBox[1]) {
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
        new StringSelection(tEingabe2.getText()), null);
        }

        if(e.getSource()==cBox[2]) {
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
        new StringSelection(tAusgabe.getText()), null);
        }

Ich komme mir echt zu blöd dafür vor .. das blöde Ding macht einfach nichts ???:L
Ich habe mir die API schon ein paar Mal angesehen, aber ich bin mir nicht sicher, ob das alles so richtig ist.
 

eRaaaa

Top Contributor
Also das
Java:
if(e.getSource()==cBox[0])
ergibt immer noch keinen Sinn, e.getSource() wird immer deine Combobox (oder eben einer der Buttons...) sein. Du willst doch das Item/String vergleichen, der ausgewählt wurde. Den ganzen Code den du bei "Heute 20:21" gepostet hast , kommentiere mal aus und ersetze das mit
Java:
		String s = (String) cBCopy.getSelectedItem();

		if (s.equals(cBox[0])) {
			Toolkit.getDefaultToolkit()
					.getSystemClipboard()
					.setContents(new StringSelection(tEingabe1.getText()), null);
		}

		else if (s.equals(cBox[1])) {
			Toolkit.getDefaultToolkit()
					.getSystemClipboard()
					.setContents(new StringSelection(tEingabe2.getText()), null);
		}

		else if (s.equals(cBox[2])) {
			Toolkit.getDefaultToolkit().getSystemClipboard()
					.setContents(new StringSelection(tAusgabe.getText()), null);
		}
(zumindest vom Prinzip her. Und Strings mit equals vergleichen !!!)
 

Jats

Aktives Mitglied
(zumindest vom Prinzip her. Und Strings mit equals vergleichen !!!)

Einen Denkfehler habe ich schonmal entdeckt .. ich wollte halt die Objekte vergleichen und nicht den Inhalt.

Also das
Java:
if(e.getSource()==cBox[0])
ergibt immer noch keinen Sinn, e.getSource() wird immer deine Combobox (oder eben einer der Buttons...) sein. Du willst doch das Item/String vergleichen, der ausgewählt wurde. Den ganzen Code den du bei "Heute 20:21" gepostet hast , kommentiere mal aus und ersetze das mit
Java:
		String s = (String) cBCopy.getSelectedItem();

		if (s.equals(cBox[0])) {
			Toolkit.getDefaultToolkit()
					.getSystemClipboard()
					.setContents(new StringSelection(tEingabe1.getText()), null);
		}

		else if (s.equals(cBox[1])) {
			Toolkit.getDefaultToolkit()
					.getSystemClipboard()
					.setContents(new StringSelection(tEingabe2.getText()), null);
		}

		else if (s.equals(cBox[2])) {
			Toolkit.getDefaultToolkit().getSystemClipboard()
					.setContents(new StringSelection(tAusgabe.getText()), null);
		}

Okay, ich versuche das mal.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Swing TicTacToe-Bitte um Hilfe AWT, Swing, JavaFX & SWT 32
T Bitte um Hilfe AWT, Swing, JavaFX & SWT 2
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
R Swing JOptionPane Fehlermeldung- bitte um Hilfe! AWT, Swing, JavaFX & SWT 4
V Bitte um Hilfe bei nem Taschenrechner AWT, Swing, JavaFX & SWT 8
O Bitte um Hilfe bei ComboBox in TableHeader AWT, Swing, JavaFX & SWT 9
N ausrichtung Button - hilfe bitte AWT, Swing, JavaFX & SWT 2
J JPanel in JScrollPane Hilfe bitte AWT, Swing, JavaFX & SWT 2
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
A Swing Meine JButtons werden nicht angezeigt bitte helft mir AWT, Swing, JavaFX & SWT 2
J Bitte Erläuterung (skin/virtualflow) AWT, Swing, JavaFX & SWT 0
H JTextArea - farbige Zeilen .. bitte um Vorschläge zur Implementierung AWT, Swing, JavaFX & SWT 1
T action für Button übergeben - bitte um Segen AWT, Swing, JavaFX & SWT 1
C Swing XML - JAVA (GUI) Problem !! BITTE HELFEN !! AWT, Swing, JavaFX & SWT 6
R Bitte kein Menü bei F10 AWT, Swing, JavaFX & SWT 9
S Bitte um ein Beispiel von JXTreeTable AWT, Swing, JavaFX & SWT 12
J AWT Einmal FileDialog-Beispiel für Dumme bitte AWT, Swing, JavaFX & SWT 6
S Swing Bild (Gif) in Bitte warten JDialog AWT, Swing, JavaFX & SWT 6
A repaint() zu langsam, bitte um alternativen AWT, Swing, JavaFX & SWT 5
hdi GUI - Bitte optisches Feedback ;) AWT, Swing, JavaFX & SWT 26
O Verbesserungfrage zu einem MP3Player Slider - Ebenius kannst du helfen bitte ? AWT, Swing, JavaFX & SWT 10
R JDialog "Bitte warten..." durchsichtig AWT, Swing, JavaFX & SWT 5
A Bitte warten Dialog AWT, Swing, JavaFX & SWT 4
E bei gedrückte Taste --> Bitte nur ein Event auslösen AWT, Swing, JavaFX & SWT 4
P Anfänger Probleme mit JTable bitte um Rat! AWT, Swing, JavaFX & SWT 5
G Mausklick event? BITTE HELFT MIR! :( AWT, Swing, JavaFX & SWT 8
I TrayIcon aber bitte nur einmal AWT, Swing, JavaFX & SWT 2
H <Synth> Alle die sich auskennen Bitte hier rein schaue AWT, Swing, JavaFX & SWT 2
hdi bitte um performance ratschläge AWT, Swing, JavaFX & SWT 31
G kann meine idee nicht verwirklichen, bitte helfen AWT, Swing, JavaFX & SWT 3
G eingegebene Werte einer JTable prüfen? Bitte helfen AWT, Swing, JavaFX & SWT 5
V Bitte um kurze erklärung AWT, Swing, JavaFX & SWT 2
S ScrollBar, bitte helft mir! AWT, Swing, JavaFX & SWT 9
S Bitte Sinusbefehl erklären AWT, Swing, JavaFX & SWT 5
C JTree bereitet große Probleme, kann uns bitte jemand helfen! AWT, Swing, JavaFX & SWT 6
J eventhandling / Problemmeldung Bitte schaut euch den Code an AWT, Swing, JavaFX & SWT 2
thE_29 Vor dem ersten Posten bitte lesen! AWT, Swing, JavaFX & SWT 0
M MouseEnter - Exit - Starthilfe bitte! AWT, Swing, JavaFX & SWT 3
A Kann mir mal bitte jemand die Ausrichtungen logisch erklären AWT, Swing, JavaFX & SWT 10
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
JavaBeginner22 Button Hilfe AWT, Swing, JavaFX & SWT 0
ExceptionOfExpectation Textdarstellung auf einem Canvas mit Hilfe von repaint(); AWT, Swing, JavaFX & SWT 6
senol JOptionPane hilfe!!! :(((( AWT, Swing, JavaFX & SWT 32
donnico2 Objekte in der GUI ausgeben mit Hilfe einer DAO AWT, Swing, JavaFX & SWT 1
J Swing Hilfe bei Layout AWT, Swing, JavaFX & SWT 2
Zrebna JavaFX-Projekt mit Bildern funktioniert nicht - um Hilfe wird gebeten AWT, Swing, JavaFX & SWT 14
F BorderLayout Hilfe bei Anzeige AWT, Swing, JavaFX & SWT 2
J Hilfe beim tablevies AWT, Swing, JavaFX & SWT 2
T Swing Hilfe - Selbst Informatik Lehrer konnte mir nicht weiter Helfen AWT, Swing, JavaFX & SWT 2
W Swing Hilfe beim Einbinden von Bildern in einem JFrame AWT, Swing, JavaFX & SWT 8
T Hilfe bei Code AWT, Swing, JavaFX & SWT 2
S Hilfe bei Java Gui Anfänger AWT, Swing, JavaFX & SWT 5
J Warum geht das nicht? if-else usw..... compilieren geht nicht -- HILFE!!! AWT, Swing, JavaFX & SWT 10
M Problem mit Layoutmanagern... Hilfe wäre sehr nett. AWT, Swing, JavaFX & SWT 2
T Hilfe was mus ich tun um das fertige JfxFenster zu sehen AWT, Swing, JavaFX & SWT 2
R Hilfe beim ändern des Hintergrundes eines JFrames AWT, Swing, JavaFX & SWT 9
A hilfe für flowlayout AWT, Swing, JavaFX & SWT 6
N Swing Benötige Hilfe um ein Swing Canvas zu speichern AWT, Swing, JavaFX & SWT 4
C Gesucht: Hilfe beim programmieren. AWT, Swing, JavaFX & SWT 1
V Swing Brauche Hilfe mit Label AWT, Swing, JavaFX & SWT 3
C Hilfe beim programmieren mit studiumgebundenes Projekt AWT, Swing, JavaFX & SWT 1
T Swing JTable Zeile mit ausgelesenen Werten mit Hilfe von einem Button hinzufügen AWT, Swing, JavaFX & SWT 1
A JavaFX Hilfe beim Design eines Quiz AWT, Swing, JavaFX & SWT 2
H Swing Hilfe bei GUI AWT, Swing, JavaFX & SWT 4
T HILFE wie lösche ich gezeichnetes per tastendruck AWT, Swing, JavaFX & SWT 1
Tausendsassa ImageIcon?! Hilfe! AWT, Swing, JavaFX & SWT 10
C Hilfe bei JSpinner und JList AWT, Swing, JavaFX & SWT 1
J GridBagLayout mit Hilfe einer For-Schleife befüllen AWT, Swing, JavaFX & SWT 1
M Hilfe bei Performanceverbesserung AWT, Swing, JavaFX & SWT 34
B Hilfe welches Layout brauch ich AWT, Swing, JavaFX & SWT 4
M SwingWorker Hilfe! AWT, Swing, JavaFX & SWT 10
K Swing Brauche Hilfe AWT, Swing, JavaFX & SWT 6
O AWT Performance und Bug behebung[brauche Hilfe] AWT, Swing, JavaFX & SWT 2
K Swing Konsolen Programm in GUI - Suche Hilfe bei Konsolenausgabe AWT, Swing, JavaFX & SWT 2
K Viele Textfield mit Hilfe eines MousListener leeren - möglich? AWT, Swing, JavaFX & SWT 8
I ausgewählte Zeile mit Hilfe der Tastatur löschen! AWT, Swing, JavaFX & SWT 3
Kenan89 Java FX GUI Hilfe für erste Java FX App AWT, Swing, JavaFX & SWT 8
B Rechteck Mit Hilfe Von Timeline, KeyFrames animieren AWT, Swing, JavaFX & SWT 3
J LayoutManager Hilfe bei Wahl des Layouts AWT, Swing, JavaFX & SWT 9
F Hilfe beim ausschalten von Robot AWT, Swing, JavaFX & SWT 7
N Hilfe bei Memory-Spiel AWT, Swing, JavaFX & SWT 18
L Swing Hilfe bei JTabelModel gesucht AWT, Swing, JavaFX & SWT 4
B Hilfe zu JTable und JTabbedPane AWT, Swing, JavaFX & SWT 18
K Hilfe bei Labels AWT, Swing, JavaFX & SWT 3
S Hilfe beim Lernprozess von java3d AWT, Swing, JavaFX & SWT 20
T JLayeredPanel - Hilfe AWT, Swing, JavaFX & SWT 7
C Swing Hilfe bei umsetzung eines Stundenplans. AWT, Swing, JavaFX & SWT 7
K Swing Hilfe beim JTree! AWT, Swing, JavaFX & SWT 3
N Hilfe bei Panels! AWT, Swing, JavaFX & SWT 11
F Swing Syntaxhighlighting Hilfe AWT, Swing, JavaFX & SWT 5
Jats Hilfe bei FocusListener für Taschenrechner AWT, Swing, JavaFX & SWT 4
N Swing nach Fensterrand Action ausführen? HILFE AWT, Swing, JavaFX & SWT 7
R Hilfe bei Bachelorrabeit. Seitenvorschau AWT, Swing, JavaFX & SWT 7
L Mein Kopf dreht sich... Brauche Hilfe beim GUI gestalten AWT, Swing, JavaFX & SWT 10
G Swing Hilfe-Fenster erstellen AWT, Swing, JavaFX & SWT 20
E LayoutManager Hilfe ein GridbagLayout!! AWT, Swing, JavaFX & SWT 7
K GUI-Hilfe für Anfänger AWT, Swing, JavaFX & SWT 15
J Schulprojekt und braucht hilfe AWT, Swing, JavaFX & SWT 54
G Hilfe! Command Pattern an easy ImageViewer? AWT, Swing, JavaFX & SWT 13
radiac Hilfe bei GUI AWT, Swing, JavaFX & SWT 22

Ähnliche Java Themen

Neue Themen


Oben