GUI Fehlermeldung mit sound

DARK_ZERATO2

Mitglied
Moin moin,

ich habe folgendes Problem:

Wenn ich mein Programm starte kommen zwei Fehlermeldungen
(Sind da weil mein PC nicht mit dem JDBC treiber anfängt findet die datenbank nicht also nicht wundern)


wenn nun diese Fehlermeldungen kommen soll ein Sound abgespeilt werden
(von Windows erst mal (vllt illegal?))


bei der ersten kommt der sound auch aber bei der zweiten nicht warum?



Hier der Quellcode (ist ein fenster das von meinem Terminkalender aufgerufen wird)

ach fast vergessen ich programmiere mit Eclipse JAVA GUIs wie im Quellcode^^

Java:
package TEST;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.FloatControl;
import javax.swing.BorderFactory;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.ListModel;

import javax.swing.WindowConstants;
import javax.swing.border.BevelBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.SwingUtilities;


/**
 * This code was edited or generated using CloudGarden's Jigloo
 * SWT/Swing GUI Builder, which is free for non-commercial
 * use. If Jigloo is being used commercially (ie, by a corporation,
 * company or business for any purpose whatever) then you
 * should purchase a license for each developer using Jigloo.
 * Please visit [url=http://www.cloudgarden.com]Cloud Garden (Java Resources)[/url] for details.
 * Use of Jigloo implies acceptance of these licensing terms.
 * A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
 * THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
 * LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
 */
public class LöschTermin extends javax.swing.JFrame {
	private JList jListErgebnis;
	private JPanel jPanelLösch;
	private JLabel jLabelDatum;
	private JButton jButtonZurück;
	private String schemata ="MP_dm0817";
	private String account ="DM0819";
	private String passwort ="glwthx";
	private String dummy[][]=new String [2][];
	private Connection connection=null;
	private Clip clip;
	private JButton jButtonFehler;
	private boolean running;

	/**
	 * Auto-generated main method to display this JFrame
	 */
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				LöschTermin inst = new LöschTermin();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}

	public LöschTermin() {
		super();
		initGUI();
		try {
			myInit();
		} catch (SQLException e) {
			String titel="Microsoft+Fehlermeldungen=Musik2.wav";
			initPlayer(titel);
			if (!running) {
				running = true;
				clip.start();
			} else {
				running = false;
				clip.stop();
			}
			String Fehl ="Die Verbindung zur DB konnte nicht hergestellt werden";
			Fehler(Fehl);
			e.printStackTrace();
		}
	}
	public void myInit() throws SQLException{
		//datum:
		{	
			Date dt = new Date();
			SimpleDateFormat df = new SimpleDateFormat( "dd.MM.yyyy" );
			df.setTimeZone( TimeZone.getDefault() );
			jLabelDatum.setText(df.format(dt));
		}	
		
		//connection
		try {
			Class.forName("com.ibm.as400.access.AS400JDBCDriver").newInstance();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			String titel="Microsoft+Fehlermeldungen=Musik2.wav";
			initPlayer(titel);
			if (!running) {
				running = true;
				clip.start();
			} else {
				running = false;
				clip.stop();
			}
			String Fehl="Der Treiber konnte nicht gefunden werden!";
			Fehler(Fehl);
			e.printStackTrace();
		}
		connection =DriverManager.getConnection("jdbc:as400://sys3/"+schemata+"", ""+account+"", ""+passwort+"");

		String Suche = "Select * from MP_DM0818.KALENDER";
		PreparedStatement psSuche = connection.prepareStatement(Suche);
		psSuche.executeQuery();
		ResultSet rs = psSuche.executeQuery();
		System.out.println(Suche);

		String psc = "select count(*) from MP_DM0818.KALENDER";
		PreparedStatement pstmt2 = connection.prepareStatement(psc);
		ResultSet rs2 =   pstmt2.executeQuery();
		rs2.next();
		int rs2z=Integer.parseInt(rs2.getString(1));
		int anzahlRecords=rs2z;

		String[] erg=new String[anzahlRecords];
		//anzahl ermitteln

		dummy[0] =new String [anzahlRecords];
		dummy[1] =new String [anzahlRecords];

		for (int i=0;i<erg.length;i++)
		{
			if(rs.next()){
				//array füllen
				erg[i]= rs.getString(1).trim() + ", " +
				rs.getString(2).trim();}
			else {
				String Fehl = "Es wurde/n kein/e Ergebnis/e gefunden"; 
				Fehler(Fehl);
				/*Fehlerlabel dDatumfehl = new Fehlerlabel();
				dDatumfehl.FillTextArea("Es wurde/e kein/e Ergebnis/e gefunden");
				dDatumfehl.setVisible(true);*/}

			dummy[0][i] =rs.getString(1).trim();
			dummy[1][i] =rs.getString(2).trim();
		}
		//übertagung der ergebnise
		ListModel jListKundenModel = new DefaultComboBoxModel(erg);
		jListErgebnis.setModel(jListKundenModel);
	}


	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			this.setTitle("Termin(e) löschen");
			{
				jPanelLösch = new JPanel();
				getContentPane().add(jPanelLösch);
				jPanelLösch.setBounds(12, 12, 486, 221);
				jPanelLösch.setBorder(BorderFactory.createTitledBorder("Löschen"));
				jPanelLösch.setLayout(null);
				{
					ListModel jListErgebnisModel = 
						new DefaultComboBoxModel(
								new String[] { "", "" });
					jListErgebnis = new JList();
					jPanelLösch.add(jListErgebnis);
					jListErgebnis.setModel(jListErgebnisModel);
					jListErgebnis.setBounds(17, 24, 452, 189);
					jListErgebnis.addListSelectionListener(new ListSelectionListener() {
						public void valueChanged(ListSelectionEvent evt) {
							try {
								jListErgebnisValueChanged(evt);
							} catch (SQLException e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
							}
						}
					});
				}
			}
			{
				jButtonZurück = new JButton();
				getContentPane().add(jButtonZurück);
				jButtonZurück.setText("Zurück");
				jButtonZurück.setBounds(453, 239, 46, 21);
				jButtonZurück.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						jButtonZurückActionPerformed(evt);
					}
				});
			}
			{
				jLabelDatum = new JLabel();
				getContentPane().add(jLabelDatum);
				jLabelDatum.setBounds(412, 0, 71, 14);
			}
			pack();
			this.setSize(518, 300);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private void jListErgebnisValueChanged(ListSelectionEvent evt) throws SQLException {
		int index =jListErgebnis.getSelectedIndex();
		String lösch=("delete * from MP_DM0817.Terminplaner" +
				"where Datum ='"+dummy[0][index].trim()+"' and where Notiz ='"+dummy[1][index].trim()+"'");
		PreparedStatement pslösch = connection.prepareStatement(lösch);
		pslösch.executeUpdate();
	}

	private void jButtonZurückActionPerformed(ActionEvent evt) {
		this.setVisible(false);
	}
	private void Fehler(String Fehl){
		/*String titel="Microsoft+Fehlermeldungen=Musik2.wav";
		initPlayer(titel);
		if (!running) {
			running = true;
			clip.start();
		} else {
			running = false;
			clip.stop();
		}*/
		JOptionPane.showMessageDialog(null,
				Fehl,
				"Fehler",					      
				JOptionPane.WARNING_MESSAGE);
		//System.exit(0);
	}
	private void initPlayer(String Titel) {
		try {
			AudioInputStream ais = AudioSystem.getAudioInputStream(new File(
					"C:\\"+Titel+""));
			AudioFormat format = ais.getFormat();
			DataLine.Info info = new DataLine.Info(Clip.class, format,
					((int) ais.getFrameLength() * format.getFrameSize()));
			clip = (Clip) AudioSystem.getLine(info);
			clip.open(ais);

			FloatControl gainControl = (FloatControl) clip
					.getControl(FloatControl.Type.MASTER_GAIN);
			gainControl.setValue(1.0F);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
 

Marco13

Top Contributor
Wenn das ganze jetzt ein KSKB wäre (als ein Fenster mit einem Button der nur den Fehlerdialog aufmacht, und damit nur den relevanten Teil enthält) würde ich das sogar mal testen.... :reflect:
 

DARK_ZERATO2

Mitglied
das funkst jetzt habe das nur geändert:

Java:
  initPlayer(titel);
            if (!running) {
                running = true;
                clip.start();
            } else {
                running = false;
                clip.stop();
            }

das ist der aufruf des player für den sound die if (ich hab das so aus I-net kopiert) soll woll den player starten das hab ich weg gemacht sieht dann so aus

Java:
 initPlayer(titel);
                running = true;
                clip.start();

so funkstioniert das^^
 

Marco13

Top Contributor
Tatsächlich... das ist ja ein GSKB :D

Es liegt wohl daran, dass da dieses "running"-Flag umgesetzt wird: Bei der ersten Fehlermeldung wird
Java:
            if (!running) {
                running = true;
                clip.start();
gemacht, und bei der zweiten dann eben
Java:
            } else {
                running = false;
                clip.stop();
            }

Wenn man die ganzen "running=true"/"running=false" mal auskommentiert, kommt der sound zwei mal... so viel zur Ursache des Fehlers ... um zu wissen, wie man ihn geeignet behebt, müßte man den Sinn und Zweck des 'running' im Gesamtablauf besser nachvollziehen...


EDIT: Naja, zu spät.... :bahnhof:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Fehlermeldung: Error: Could not find or load main class set Caused by: java.lang.ClassNotFoundException: set AWT, Swing, JavaFX & SWT 5
V JavaFX Bild leer und keine Fehlermeldung AWT, Swing, JavaFX & SWT 21
L FX-Projekt: fast leere Fensterausgabe ohne Fehlermeldung AWT, Swing, JavaFX & SWT 6
P Swing Icon einfügen wirft eine Fehlermeldung AWT, Swing, JavaFX & SWT 3
S Scene Builder Fehlermeldung (Anfängerprobleme) AWT, Swing, JavaFX & SWT 0
S Scene Builder Fehlermeldung (Anfängerprobleme) AWT, Swing, JavaFX & SWT 8
Z Fehlermeldung AWT, Swing, JavaFX & SWT 3
N Verständnisproblem bei Fehlermeldung bei "showMessage" AWT, Swing, JavaFX & SWT 3
R AWT Ich verstehe die Fehlermeldung nicht. Was habe ich falsch gemacht? AWT, Swing, JavaFX & SWT 85
L java.lang.NullPointerException - Fehlermeldung AWT, Swing, JavaFX & SWT 2
J Event Handling Input auf String testen, Fehlermeldung ausgeben AWT, Swing, JavaFX & SWT 4
S JavaFX Fehlermeldung Root hasn't been set AWT, Swing, JavaFX & SWT 2
T Unerklärliche Fehlermeldung AWT, Swing, JavaFX & SWT 5
K Fehlermeldung mit Interface AWT, Swing, JavaFX & SWT 9
L ImageIcon auf JPanel wird nicht angezeigt(keiner Fehlermeldung) AWT, Swing, JavaFX & SWT 11
L JButton mit ImageIcon/Fehlermeldung AWT, Swing, JavaFX & SWT 1
R Swing JOptionPane Fehlermeldung- bitte um Hilfe! AWT, Swing, JavaFX & SWT 4
F Unverständliche Fehlermeldung AWT, Swing, JavaFX & SWT 5
J Fehlermeldung adding a window to a container AWT, Swing, JavaFX & SWT 9
C Swing Fehlermeldung in einem Dialog anzeigen AWT, Swing, JavaFX & SWT 2
S SWT Fehlermeldung ausgeben AWT, Swing, JavaFX & SWT 7
D SWT "Hello World" - Fehlermeldung AWT, Swing, JavaFX & SWT 8
ModellbahnerTT Fehlermeldung: StackOverflowError AWT, Swing, JavaFX & SWT 8
O Fehlermeldungs-Fenster je nach Fehlermeldung AWT, Swing, JavaFX & SWT 2
R Fehlermeldung: ". is not abstract" AWT, Swing, JavaFX & SWT 5
B Swing Fehlermeldung AWT, Swing, JavaFX & SWT 6
J Eigene Fehlermeldung in AWT erzeugen AWT, Swing, JavaFX & SWT 2
M JTable. Beim löschen der Zeilen Fehlermeldung AWT, Swing, JavaFX & SWT 22
D Unverständliche Fehlermeldung AWT, Swing, JavaFX & SWT 5
A Fehlermeldung wegen FocusTraversalKeys AWT, Swing, JavaFX & SWT 4
A Fehlermeldung beim Bild speichern AWT, Swing, JavaFX & SWT 4
K JavaFx, Sound Aufnahme und Thread AWT, Swing, JavaFX & SWT 0
missy72 JavaFX KeyFrame / Zeitversetzter Sound AWT, Swing, JavaFX & SWT 1
C JavaFx sound abspielen AWT, Swing, JavaFX & SWT 3
VPChief Nach abspielen von Sound reagiert das Program nichtmehr AWT, Swing, JavaFX & SWT 9
H Sound abspielen klappt nicht AWT, Swing, JavaFX & SWT 4
C Wie kann ich den Sound stoppen? AWT, Swing, JavaFX & SWT 4
Z GUI-Ausgabe mit Bild und Sound AWT, Swing, JavaFX & SWT 3
J Probleme mit Sound in Jar-Archiv AWT, Swing, JavaFX & SWT 2
S Sound spielen AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben