String.format Fehler

Hallo,
ich habe folgenden Code:
Java:
String eingabe = tfEingabe.getText();
String ausgabe = String.format("%2f",1345/Double.parseDouble((eingabe)));
lbAusgabe.setText(ausgabe);

String.format wird rot unterstrichen und ich bekomme die Meldung: "The methode format(String, Object[]) in the type String is not applicable for the arguments (String, double)

wo ist mein Fehler?
LG
Schweizergeizer
 
also erstens würde ich mal sagen dass was damit zu tun hat, dass du kein string und dobble gleichsetzen kannst
aber bitte poste mal deinen komplletten code 😀
sonst erkenn ich auf die schnell nix
 
Mach einfach aus [c]String ausgabe = String.format("%2f",1345/Double.parseDouble((eingabe)));[/c]

[c]String ausgabe = String.format("%2f",new Double(1345/Double.parseDouble((eingabe))));[/c]
 
dein
Code:
...1345/Double.parseDouble((eingabe)));
stimmt nicht. 1345 ist kein double. Solltest du wirklich diesen Wert hardcoded nehmen wollen (was ich eher in eine Konstante auslagern würde), dann musst du
Code:
1345d/Double.parseDouble((eingabe)));
machen. Das d sagt dem Compiler dass die Zahl als double interpretiert werden soll.

[EDIT]hoppala, dachte bin der erste 😀[/EDIT]
 
Zuletzt bearbeitet:
selbe fehlermeldung
http://puu.sh/6ZFoF.png

es erkennt einfach die eingabe nicht an...

hier der ganze code:
Java:
package klassen;

import javax.swing.SwingUtilities;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.Color;

public class Oberflaeche extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JLabel jLabel = null;
	private JTextField tfEingabe = null;
	private JButton btVerarbeite = null;
	private JLabel jLabel1 = null;
	private JLabel lbAusgabe = null;

	private JTextField getTfEingabe() {
		if (tfEingabe == null) {
			tfEingabe = new JTextField();
			tfEingabe.setBounds(new Rectangle(126, 27, 82, 19));
		}
		return tfEingabe;
	}

	private JButton getBtVerarbeite() {
		if (btVerarbeite == null) {
			btVerarbeite = new JButton();
			btVerarbeite.setBounds(new Rectangle(117, 63, 100, 19));
			btVerarbeite.setText("Verarbeite");
			btVerarbeite.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					String eingabe = tfEingabe.getText();
					String ausgabe = String.format("%2f",new Double(1345/Double.parseDouble((eingabe))));
					lbAusgabe.setText(ausgabe);
				}
			});
		}
		return btVerarbeite;
	}

	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				Oberflaeche thisClass = new Oberflaeche();
				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				thisClass.setVisible(true);
			}
		});
	}

	public Oberflaeche() {
		super();
		initialize();
	}

	private void initialize() {
		this.setSize(300, 179);
		this.setContentPane(getJContentPane());
		this.setTitle("Oberflaeche");
	}

	private JPanel getJContentPane() {
		if (jContentPane == null) {
			lbAusgabe = new JLabel();
			lbAusgabe.setBounds(new Rectangle(126, 99, 82, 19));
			lbAusgabe.setBackground(Color.white);
			lbAusgabe.setOpaque(true);
			lbAusgabe.setText("");
			jLabel1 = new JLabel();
			jLabel1.setBounds(new Rectangle(45, 99, 73, 19));
			jLabel1.setText("Ausgabe");
			jLabel = new JLabel();
			jLabel.setBounds(new Rectangle(45, 27, 73, 19));
			jLabel.setText("Eingabe");
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(jLabel, null);
			jContentPane.add(getTfEingabe(), null);
			jContentPane.add(getBtVerarbeite(), null);
			jContentPane.add(jLabel1, null);
			jContentPane.add(lbAusgabe, null);
		}
		return jContentPane;
	}

}
 
Zuletzt bearbeitet:
wie ich in meinem vorherigen Post schon sagte, musst du nur ein Objekt aus deinem Ergebnis machen.

Du erhältst einen double (also einen primitiven Datentyp).
Deine Methode jammert jedoch weil sie ein Objekt will.
Deshalb musst du ein Double Objekt mit [c]new Double(<deinergebnis>)[/c] erstellen.
Schon akzeptiert die Methode dein Ergebnis.

Zumindest funktioniert das bei mir.
 
Zuletzt bearbeitet:
versuchs mal mit
Java:
 String ausgabe = eingabe.format("%2f",new Double(1345/Double.parseDouble((eingabe))));[/Java]
 
Die für das Projekt eingestellte JRE Version kannst du beim Projekt selber einsehen. "JRE System Library".

Für welche Version der Compiler dein Projekt kompilliert kannst du per Rechtsklick auf dein Projekt --> Properties --> Java Compiler sehen. "Compiler compliance level". Die eingestellte Version steht in der Dropdown Liste. (Ist ausgegraut, wenn gegen die oben erwähnte eingestellte JRE gebaut wird).

Ob die Erklärung jetzt so korrekt ist, weiss ich nicht 100%. Aber so reime ich mir das zumindest zusammen.
 

Neue Themen


Zurück
Oben