B
Benjamin
Gast
Hallo Forenmitglieder,
ich versuch schon seit längerem eine *.wav Datei in Java abspielen zu lassen. Der Compiler meckert auch nicht mit meinem Code. Sobald ich aber den Button drücke, kommt einiges an Fehlermeldungen.
Das ist mein Code. Der zitierte Teil ist der reine Code für den Sound. Wenn ich den Code raustue, funktionier auch alles bestens. Also das muss an dem zitierten Code hier liegen.
An was kann das liegen? Würde mich über Hilfe sehr freuen, ich verzweifel schon fast.
Gruss Benjamin
Edit by Illuvatar, 10.2.2006, 21:05
Ich hab deine TitledBorders etwas "umgebrochen", damits das Layout net so verzieht.
ich versuch schon seit längerem eine *.wav Datei in Java abspielen zu lassen. Der Compiler meckert auch nicht mit meinem Code. Sobald ich aber den Button drücke, kommt einiges an Fehlermeldungen.
Code:
package BMI;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JTextArea;
import javax.swing.ImageIcon;
import javax.swing.border.TitledBorder;
import javax.swing.BorderFactory;
import java.applet.*;
import java.net.*;
import java.awt.Font;
import java.awt.Color;
public class Oberflaeche extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JComboBox cmbGeschlecht = null;
private JComboBox cmbKnochenbau = null;
private JLabel lblName = null;
private JLabel lblGroesse = null;
private JLabel lblGewicht = null;
private JLabel lblAlter = null;
private JTextField txtVorname = null;
private JTextField txtGroesse = null;
private JTextField txtGewicht = null;
private JTextField txtAlter = null;
private JButton btnRechnen = null;
private JLabel lblErgebnis = null;
private JLabel lblKommentar = null;
private JTextArea txaErgebnis = null;
private JTextArea txaKommentar = null;
private JLabel lblBild = null;
private JButton btnRuecksetzen = null;
private JLabel lblCopyright = null;
private JLabel lblUeberschrift = null;
private double k1, k2, k3;
/**
* This method initializes jComboBox
*
* @return javax.swing.JComboBox
*/
private JComboBox getJComboBox() {
if (cmbGeschlecht == null) {
TitledBorder titledBorder1 = BorderFactory.createTitledBorder(
null, "Geschlecht", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION,
new Font("Dialog", Font.BOLD, 12), new Color(51, 51, 51));
titledBorder1.setTitleFont(new java.awt.Font("Tahoma", java.awt.Font.BOLD, 12));
cmbGeschlecht = new JComboBox();
cmbGeschlecht.setToolTipText("");
cmbGeschlecht.setSize(new java.awt.Dimension(140,45));
cmbGeschlecht.setLocation(new java.awt.Point(290,85));
cmbGeschlecht.setBorder(titledBorder1);
cmbGeschlecht.setFont(new java.awt.Font("Tahoma", java.awt.Font.BOLD, 12));
cmbGeschlecht.addItem("weiblich");
cmbGeschlecht.addItem("männlich");
}
return cmbGeschlecht;
}
/**
* This method initializes jComboBox1
*
* @return javax.swing.JComboBox
*/
private JComboBox getJComboBox1() {
if (cmbKnochenbau == null) {
TitledBorder titledBorder = BorderFactory.createTitledBorder(
null, "Knochenbau", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION,
new Font("Dialog", Font.BOLD, 12), new Color(51, 51, 51));
titledBorder.setTitleFont(new java.awt.Font("Tahoma", java.awt.Font.BOLD, 12));
cmbKnochenbau = new JComboBox();
cmbKnochenbau.setSize(new java.awt.Dimension(140,45));
cmbKnochenbau.setFont(new java.awt.Font("Tahoma", java.awt.Font.BOLD, 12));
cmbKnochenbau.setBorder(titledBorder);
cmbKnochenbau.setLocation(new java.awt.Point(290,135));
cmbKnochenbau.addItem("leicht");
cmbKnochenbau.addItem("mittel");
cmbKnochenbau.addItem("schwer");
}
return cmbKnochenbau;
}
/**
* This method initializes txtVorname
*
* @return javax.swing.JTextField
*/
private JTextField getTxtVorname() {
if (txtVorname == null) {
txtVorname = new JTextField();
txtVorname.setToolTipText("Dein Name kommt hier rein...");
txtVorname.setLocation(new java.awt.Point(140,90));
txtVorname.setFont(new java.awt.Font("Tahoma", java.awt.Font.PLAIN, 12));
txtVorname.setSize(new java.awt.Dimension(117,25));
}
return txtVorname;
}
/**
* This method initializes txtGroesse
*
* @return javax.swing.JTextField
*/
private JTextField getTxtGroesse() {
if (txtGroesse == null) {
txtGroesse = new JTextField();
txtGroesse.setLocation(new java.awt.Point(140,125));
txtGroesse.setToolTipText("Die Größe brauchen wir auch noch...");
txtGroesse.setFont(new java.awt.Font("Tahoma", java.awt.Font.PLAIN, 12));
txtGroesse.setSize(new java.awt.Dimension(117,25));
}
return txtGroesse;
}
/**
* This method initializes txtGewicht
*
* @return javax.swing.JTextField
*/
private JTextField getTxtGewicht() {
if (txtGewicht == null) {
txtGewicht = new JTextField();
txtGewicht.setLocation(new java.awt.Point(140,160));
txtGewicht.setToolTipText("Sei bitte ehrlich! :)");
txtGewicht.setFont(new java.awt.Font("Tahoma", java.awt.Font.PLAIN, 12));
txtGewicht.setSize(new java.awt.Dimension(117,25));
}
return txtGewicht;
}
/**
* This method initializes txtAlter
*
* @return javax.swing.JTextField
*/
private JTextField getTxtAlter() {
if (txtAlter == null) {
txtAlter = new JTextField();
txtAlter.setLocation(new java.awt.Point(140,195));
txtAlter.setToolTipText("Wieviel Lenzen zählst du denn schon?");
txtAlter.setFont(new java.awt.Font("Tahoma", java.awt.Font.PLAIN, 12));
txtAlter.setSize(new java.awt.Dimension(117,25));
}
return txtAlter;
}
/**
* This method initializes btnRechnen
*
* @return javax.swing.JButton
*/
private JButton getBtnRechnen() {
if (btnRechnen == null) {
btnRechnen = new JButton();
btnRechnen.setToolTipText("Klick hier, wenn du keine Angst vor der Wahrheit hast!");
btnRechnen.setLocation(new java.awt.Point(140,240));
btnRechnen.setSize(new java.awt.Dimension(117,25));
btnRechnen.setSelected(false);
btnRechnen.setFont(new java.awt.Font("Tahoma", java.awt.Font.BOLD, 14));
btnRechnen.setText("Berechnen");
btnRechnen.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()");
String Vorname, Kommentar;
double Groesse, Gewicht, Idealgewicht, Alter, BMI, Verhaeltnis;
int Knochenbau, Geschlecht;
Vorname = txtVorname.getText();
Groesse = Double.parseDouble(txtGroesse.getText());
Gewicht = Double.parseDouble(txtGewicht.getText());
Alter = Double.parseDouble(txtAlter.getText());
Groesse = Groesse/100;
Geschlecht = cmbGeschlecht.getSelectedIndex();
Knochenbau = cmbKnochenbau.getSelectedIndex();
switch (Geschlecht){
case 0:k2 = 0.95;break;
case 1:k2 = 1;break;
default:k2 = 1;
}
switch (Knochenbau){
case 0:k1 = 0.95;break;
case 1:k1 = 1;break;
case 2:k1 = 1.05;break;
default:k1 = 1;
}
BMI = 22.5;
if (Alter <= 40){
k3 = 1;
}
else{
k3 =1.05;
}
Idealgewicht = (Groesse*Groesse)*BMI*k1*k2*k3;
Idealgewicht = (int) (Idealgewicht*100);
Idealgewicht = (double) (Idealgewicht/100);
Verhaeltnis = Gewicht/Idealgewicht;
if (Verhaeltnis <=1.1 && Verhaeltnis>0.9){
Kommentar="Idealgewicht eingehalten!";
}
else{
if (Verhaeltnis >1.1 && Verhaeltnis <=1.3){
Kommentar="Leichtes Übergewicht!";
}
else{
if (Verhaeltnis >1.3){
Kommentar="Starkes Übergewicht!";
}
else{
if (Verhaeltnis <=0.9 && Verhaeltnis >0.7){
Kommentar="Leichtes Untergewicht!";
}
else{
if(Verhaeltnis<0.7){
Kommentar="Starkes Untergewicht!";
}
else{
Kommentar="Fehler!";
}
}
}
}
}
if (Verhaeltnis <=1.1 && Verhaeltnis>0.9 && Geschlecht == 0){
lblBild.setIcon(new ImageIcon(Oberflaeche.class.getResource("ideal_weiblich.jpg")));
}
else{
if (Verhaeltnis <=1.1 && Verhaeltnis>0.9 && Geschlecht == 1){
lblBild.setIcon(new ImageIcon(Oberflaeche.class.getResource("ideal_männlich.jpg")));
}
else{
if (Verhaeltnis >1.1 && Verhaeltnis <= 1.3 && Geschlecht == 0){
lblBild.setIcon(new ImageIcon(Oberflaeche.class.getResource("über_weiblich.jpg")));
}
else{
if (Verhaeltnis >1.1 && Verhaeltnis <=1.3 && Geschlecht == 1){
lblBild.setIcon(new ImageIcon(Oberflaeche.class.getResource("über_männlich.jpg")));
}
else{
if(Verhaeltnis >1.3 && Geschlecht == 0){
lblBild.setIcon(new ImageIcon(Oberflaeche.class.getResource("s_über_weiblich.jpg")));
}
else{
if (Verhaeltnis >1.3 && Geschlecht == 1){
lblBild.setIcon(new ImageIcon(Oberflaeche.class.getResource("s_über_männlich.jpg")));
}
else{
if(Verhaeltnis <= 0.9 && Verhaeltnis >0.7 && Geschlecht == 0){
lblBild.setIcon(new ImageIcon(Oberflaeche.class.getResource("unter_weiblich.jpg")));
}
else{
if(Verhaeltnis <= 0.9 && Verhaeltnis >0.7 && Geschlecht == 1){
lblBild.setIcon(new ImageIcon(Oberflaeche.class.getResource("unter_männlich.jpg")));
}
else{
if(Verhaeltnis <0.7 && Geschlecht == 0){
lblBild.setIcon(new ImageIcon(Oberflaeche.class.getResource("s_unter_weiblich.jpg")));
}
else{
if(Verhaeltnis <0.7 && Geschlecht == 1){
lblBild.setIcon(new ImageIcon(Oberflaeche.class.getResource("s_unter_männlich.jpg")));
}
}
}
}
}
}
}
}
}
}
if (Vorname.equals("")){
Vorname = "Unbekannter";
}
txaErgebnis.setVisible(true);
txaKommentar.setVisible(true);
txaErgebnis.setText("Hallo "+Vorname+",\ndein Idealgewicht beträgt "+Idealgewicht+" kg.");
txaKommentar.setText(Kommentar);
try {
URL url = new URL("file:///c:\\warning.wav");
AudioClip clip = Applet.newAudioClip(url);
clip.play();
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// TODO Auto-generated Event stub actionPerformed()
}
});
}
return btnRechnen;
}
/**
* This method initializes txaErgebnis
*
* @return javax.swing.JTextArea
*/
private JTextArea getTxaErgebnis() {
if (txaErgebnis == null) {
txaErgebnis = new JTextArea();
txaErgebnis.setLocation(new java.awt.Point(156,290));
txaErgebnis.setSize(new java.awt.Dimension(240,35));
txaErgebnis.setVisible(false);
}
return txaErgebnis;
}
/**
* This method initializes txaKommentar
*
* @return javax.swing.JTextArea
*/
private JTextArea getTxaKommentar() {
if (txaKommentar == null) {
txaKommentar = new JTextArea();
txaKommentar.setLocation(new java.awt.Point(156,340));
txaKommentar.setSize(new java.awt.Dimension(240,35));
txaKommentar.setVisible(false);
}
return txaKommentar;
}
/**
* This method initializes btnRuecksetzen
*
* @return javax.swing.JButton
*/
private JButton getBtnRuecksetzen() {
if (btnRuecksetzen == null) {
btnRuecksetzen = new JButton();
btnRuecksetzen.setLocation(new java.awt.Point(10,240));
btnRuecksetzen.setText("Rücksetzen");
btnRuecksetzen.setToolTipText("Alles löschen...");
btnRuecksetzen.setFont(new java.awt.Font("Tahoma", java.awt.Font.BOLD, 14));
btnRuecksetzen.setSize(new java.awt.Dimension(117,25));
btnRuecksetzen.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()");
txtVorname.setText("");
txtGroesse.setText("");
txtGewicht.setText("");
txtAlter.setText("");
txaErgebnis.setText("");
txaKommentar.setText("");
cmbGeschlecht.setSelectedIndex(0);
cmbKnochenbau.setSelectedIndex(0);
txaErgebnis.setVisible(false);
txaKommentar.setVisible(false);
lblBild.setIcon(new ImageIcon(Oberflaeche.class.getResource("Logo.jpg")));
// TODO Auto-generated Event stub actionPerformed()
}
});
}
return btnRuecksetzen;
}
public static void main(String[] args) {
new Oberflaeche().setVisible(true);
}
/**
* This is the default constructor
*/
public Oberflaeche() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(962, 467);
this.setResizable(false);
this.setContentPane(getJContentPane());
this.setTitle("BMI - Body Mass Index");
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
lblUeberschrift = new JLabel();
lblUeberschrift.setBounds(new java.awt.Rectangle(17,12,420,59));
lblUeberschrift.setFont(new java.awt.Font("Tahoma", java.awt.Font.BOLD, 28));
lblUeberschrift.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
lblUeberschrift.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
lblUeberschrift.setText("Bestimme dein Idealgewicht!");
lblCopyright = new JLabel();
lblCopyright.setBounds(new java.awt.Rectangle(6,394,207,32));
lblCopyright.setFont(new java.awt.Font("Tahoma", java.awt.Font.BOLD, 12));
lblCopyright.setText("(Copyright 2006, Benjamin Wild)");
lblBild = new JLabel();
lblBild.setToolTipText("*hehe*");
lblBild.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
lblBild.setIcon(new ImageIcon(Oberflaeche.class.getResource("Logo.jpg")));
lblBild.setSize(new java.awt.Dimension(470,390));
lblBild.setLocation(new java.awt.Point(459,20));
lblBild.setText("");
lblKommentar = new JLabel();
lblKommentar.setText("Kommentar:");
lblKommentar.setLocation(new java.awt.Point(18,344));
lblKommentar.setFont(new java.awt.Font("Tahoma", java.awt.Font.BOLD, 12));
lblKommentar.setSize(new java.awt.Dimension(115,26));
lblErgebnis = new JLabel();
lblErgebnis.setText("Ergebnis:");
lblErgebnis.setLocation(new java.awt.Point(18,294));
lblErgebnis.setFont(new java.awt.Font("Tahoma", java.awt.Font.BOLD, 12));
lblErgebnis.setSize(new java.awt.Dimension(115,26));
lblAlter = new JLabel();
lblAlter.setText("Alter:");
lblAlter.setLocation(new java.awt.Point(15,195));
lblAlter.setFont(new java.awt.Font("Tahoma", java.awt.Font.BOLD, 13));
lblAlter.setSize(new java.awt.Dimension(95,25));
lblGewicht = new JLabel();
lblGewicht.setText("Gewicht in kg:");
lblGewicht.setLocation(new java.awt.Point(15,160));
lblGewicht.setFont(new java.awt.Font("Tahoma", java.awt.Font.BOLD, 13));
lblGewicht.setSize(new java.awt.Dimension(95,25));
lblGroesse = new JLabel();
lblGroesse.setText("Größe in cm:");
lblGroesse.setLocation(new java.awt.Point(15,125));
lblGroesse.setFont(new java.awt.Font("Tahoma", java.awt.Font.BOLD, 13));
lblGroesse.setSize(new java.awt.Dimension(95,25));
lblName = new JLabel();
lblName.setText("Vorname:");
lblName.setSize(new java.awt.Dimension(95,25));
lblName.setFont(new java.awt.Font("Tahoma", java.awt.Font.BOLD, 13));
lblName.setLocation(new java.awt.Point(15,90));
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJComboBox(), null);
jContentPane.add(lblGroesse, null);
jContentPane.add(lblGewicht, null);
jContentPane.add(lblAlter, null);
jContentPane.add(getTxtVorname(), null);
jContentPane.add(getTxtGroesse(), null);
jContentPane.add(getTxtGewicht(), null);
jContentPane.add(getTxtAlter(), null);
jContentPane.add(getBtnRechnen(), null);
jContentPane.add(lblErgebnis, null);
jContentPane.add(lblKommentar, null);
jContentPane.add(getTxaErgebnis(), null);
jContentPane.add(getTxaKommentar(), null);
jContentPane.add(getJComboBox1(), null);
jContentPane.add(lblName, null);
jContentPane.add(lblBild, null);
jContentPane.add(getBtnRuecksetzen(), null);
jContentPane.add(lblCopyright, null);
jContentPane.add(lblUeberschrift, null);
}
return jContentPane;
}
}
Das ist mein Code. Der zitierte Teil ist der reine Code für den Sound. Wenn ich den Code raustue, funktionier auch alles bestens. Also das muss an dem zitierten Code hier liegen.
try {
URL url = new URL("file:///c:\\warning.wav");
AudioClip clip = Applet.newAudioClip(url);
clip.play();
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
actionPerformed()
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
at BMI.Oberflaeche$1.actionPerformed(Oberflaeche.java:181)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
An was kann das liegen? Würde mich über Hilfe sehr freuen, ich verzweifel schon fast.
Gruss Benjamin
Edit by Illuvatar, 10.2.2006, 21:05
Ich hab deine TitledBorders etwas "umgebrochen", damits das Layout net so verzieht.