K
Kami
Gast
hallo liebe progRamer,
ich programmiere grad ein kleines spiel, bei dem ich als hintergrundsound ein .midi file laufen lasse. ich möchte dem benutzer natürlich die möglichkeit geben, die musik zu stoppen. nur funktioniert es nich
das macht mich traurig.
hier ist mal der code
ich bedanke mich im vorraus für eure hilfe
ich programmiere grad ein kleines spiel, bei dem ich als hintergrundsound ein .midi file laufen lasse. ich möchte dem benutzer natürlich die möglichkeit geben, die musik zu stoppen. nur funktioniert es nich
das macht mich traurig.
hier ist mal der code
Code:
package informatikaufgabe;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Random;
import java.io.*;
import javax.sound.midi.*;
import javax.imageio.ImageIO;
import java.io.IOException;
import java.net.URL;
/**
*
Überschrift: </p>
*
Beschreibung: </p>
*
Copyright: Copyright (c) 2007</p>
*
Organisation: </p>
* @author unbekannt
* @version 1.0
*/
public class InformatikAufgabeFrame extends JFrame {
//deklarieren
Color zufall,red,blue,green;
int x,y,z;
public int rot;
public int gruen;
public int blau;
public void paint (Graphics g) {
super.paint(g);
}
//soundkram
JPanel contentPane;
JScrollBar s1 = new JScrollBar();
JScrollBar s2 = new JScrollBar();
JScrollBar s3 = new JScrollBar();
JTextField rotwert = new JTextField();
JTextField gruenwert = new JTextField();
JTextField blauwert = new JTextField();
JTextField rgbwerte = new JTextField();
JButton solution = new JButton();
JButton spielstarten = new JButton(new ImageIcon("data\\normalstartbtn.gif"));
//rollover icon
Icon rolloverIcon = new ImageIcon("data\\overstartbtn.gif");
//pressed icon
Icon pressedIcon = new ImageIcon("data\\overstartbtn.gif");
JLabel bild = new JLabel(new ImageIcon("data\\intro.gif"));
JTextArea greetz = new JTextArea();
JButton soundanaus = new JButton();
//Den Frame konstruieren
public InformatikAufgabeFrame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Initialisierung der Komponenten
private void jbInit() throws Exception {
//sound
//Sequencer initialisieren,öffnen und midi regeln
Sequencer sequencer = MidiSystem.getSequencer();
sequencer.open();
Sequence seq = MidiSystem.getSequence(new File("data\\mc_gyver.mid"));
sequencer.setSequence(seq);
sequencer.setTempoInBPM(145);
sequencer.start();
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(null);
this.getContentPane().setBackground(Color.lightGray);
this.setContentPane(contentPane);
this.setCursor(null);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setForeground(Color.lightGray);
this.setLocale(java.util.Locale.getDefault());
this.setResizable(false);
this.setSize(new Dimension(400,500));
this.setState(Frame.NORMAL);
this.setTitle("Farbenspiel");
s1.setName("rot");
s1.setBounds(new Rectangle(9, 312, 287, 23));
s1.setOrientation(JScrollBar.HORIZONTAL);
s1.setMaximum(265);
s1.setMinimum(0);
s1.setPreferredSize(new Dimension(17, 48));
s1.addAdjustmentListener(new InformatikAufgabeFrame_s1_adjustmentAdapter(this));
s2.setName("grün");
s2.setBounds(new Rectangle(9, 344, 287, 23));
s2.setOrientation(JScrollBar.HORIZONTAL);
s2.setMaximum(265);
s2.setMinimum(0);
s2.setPreferredSize(new Dimension(17, 48));
s2.addAdjustmentListener(new InformatikAufgabeFrame_s2_adjustmentAdapter(this));
s3.setName("blau");
s3.setBounds(new Rectangle(9, 375, 287, 23));
s3.setOrientation(JScrollBar.HORIZONTAL);
s3.setMaximum(265);
s3.setMinimum(0);
s3.setPreferredSize(new Dimension(17, 48));
s3.addAdjustmentListener(new InformatikAufgabeFrame_s3_adjustmentAdapter(this));
contentPane.setBackground(Color.black);
contentPane.setEnabled(true);
contentPane.setFont(new java.awt.Font("MS Sans Serif", 0, 11));
contentPane.setAlignmentX((float) 0.5);
contentPane.setDebugGraphicsOptions(0);
contentPane.setDoubleBuffered(false);
contentPane.setNextFocusableComponent(this);
rotwert.setEditable(false);
rotwert.setText("Rot :");
rotwert.setBounds(new Rectangle(305, 312, 88, 20));
gruenwert.setEditable(false);
gruenwert.setText("Grün :");
gruenwert.setBounds(new Rectangle(305, 345, 88, 20));
blauwert.setEditable(false);
blauwert.setText("Blau :");
blauwert.setBounds(new Rectangle(305, 376, 88, 20));
rgbwerte.setEditable(false);
rgbwerte.setBounds(new Rectangle(110, 427, 175, 27));
solution.setBounds(new Rectangle(23, 427, 75, 23));
solution.setToolTipText("Looser!!!");
solution.setText("Lösung?");
solution.addActionListener(new InformatikAufgabeFrame_solution_actionAdapter(this));
spielstarten.setBounds(new Rectangle(92, 10, 177, 27));
spielstarten.setToolTipText("Klicken um zu starten!");
spielstarten.setBorderPainted(true);
spielstarten.setContentAreaFilled(false);
spielstarten.setPressedIcon(pressedIcon);
spielstarten.setRolloverIcon(rolloverIcon);
spielstarten.setText("Spiel starten!");
spielstarten.addActionListener(new InformatikAufgabeFrame_spielstarten_actionAdapter(this));
bild.setEnabled(true);
bild.setForeground(Color.black);
bild.setOpaque(false);
bild.setVerifyInputWhenFocusTarget(false);
bild.setDisplayedMnemonic('0');
bild.setHorizontalTextPosition(SwingConstants.TRAILING);
bild.setText("");
bild.setBounds(new Rectangle(49, 30, 272, 224));
bild.setVisible(true);
greetz.setBackground(Color.black);
greetz.setEnabled(false);
greetz.setFont(new java.awt.Font("Comic Sans MS", 1, 25));
greetz.setForeground(Color.yellow);
greetz.setDoubleBuffered(false);
greetz.setDisabledTextColor(Color.yellow);
greetz.setEditable(false);
greetz.setText("Viel Spaß :D");
greetz.setLineWrap(true);
greetz.setBounds(new Rectangle(99, 156, 267, 79));
soundanaus.setBounds(new Rectangle(363, 3, 25, 23));
soundanaus.setText("jButton1");
soundanaus.addActionListener(new InformatikAufgabeFrame_soundanaus_actionAdapter(this));
contentPane.add(s1, null);
contentPane.add(s2, null);
contentPane.add(s3, null);
contentPane.add(gruenwert, null);
contentPane.add(rotwert, null);
contentPane.add(blauwert, null);
contentPane.add(rgbwerte, null);
contentPane.add(solution, null);
contentPane.add(bild, null);
contentPane.add(greetz, null);
contentPane.add(spielstarten, null);
contentPane.add(soundanaus, null);
}
//Überschrieben, so dass eine Beendigung beim Schließen des Fensters möglich ist
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
void s1_adjustmentValueChanged(AdjustmentEvent e) {
Graphics g = getGraphics();
Object s = e.getSource();
if(s==s1 || s==s2 || s==s3){
rot = s1.getValue(); // Farbfeld wird umgefärbt
gruen = s2.getValue();
blau = s3.getValue();
g.setColor(new Color(rot, gruen, blau));
g.fillOval(105,100,150,150);
rotwert.setText("Rot :"+s1.getValue());
}
}
void s2_adjustmentValueChanged(AdjustmentEvent e) {
Graphics g = getGraphics();
Object s = e.getSource();
if(s==s1 || s==s2 || s==s3){
rot = s1.getValue(); // Farbfeld wird umgefärbt
gruen = s2.getValue();
blau = s3.getValue();
g.setColor(new Color(rot, gruen, blau));
g.fillOval(105,100,150,150);
gruenwert.setText("Grün :"+s2.getValue());
}
}
void s3_adjustmentValueChanged(AdjustmentEvent e) {
Graphics g = getGraphics();
Object s = e.getSource();
if(s==s1 || s==s2 || s==s3){
rot = s1.getValue(); // Farbfeld wird umgefärbt
gruen = s2.getValue();
blau = s3.getValue();
g.setColor(new Color(rot, gruen, blau));
g.fillOval(105,100,150,150);
blauwert.setText("Blau :"+s3.getValue());
}
}
void solution_actionPerformed(ActionEvent e) {
rgbwerte.setText("R:"+x+" "+"G:"+y+" "+"B:"+z );
}
void spielstarten_actionPerformed(ActionEvent e) {
s1.setValue(0);
s2.setValue(0);
s3.setValue(0);
Graphics g = getGraphics();
Random generator = new Random();
x = (int) (generator.nextInt(255));
y = (int) (generator.nextInt(255));
z = (int) (generator.nextInt(255));
zufall = new Color(x, y, z);
bild.setVisible(false);
greetz.setVisible(true);
g.setColor(zufall);
g.fillRect(80,75,200,200);
g.setColor(Color.black);
g.fillOval(105,100,150,150);
spielstarten.setPressedIcon(null);
}
[color=red]
void soundanaus_actionPerformed(ActionEvent e) {
Sequencer sequencer = MidiSystem.getSequencer();
sequencer.stop();
}[/color]
}
class InformatikAufgabeFrame_s1_adjustmentAdapter implements java.awt.event.AdjustmentListener {
InformatikAufgabeFrame adaptee;
InformatikAufgabeFrame_s1_adjustmentAdapter(InformatikAufgabeFrame adaptee) {
this.adaptee = adaptee;
}
public void adjustmentValueChanged(AdjustmentEvent e) {
adaptee.s1_adjustmentValueChanged(e);
}
}
class InformatikAufgabeFrame_s2_adjustmentAdapter implements java.awt.event.AdjustmentListener {
InformatikAufgabeFrame adaptee;
InformatikAufgabeFrame_s2_adjustmentAdapter(InformatikAufgabeFrame adaptee) {
this.adaptee = adaptee;
}
public void adjustmentValueChanged(AdjustmentEvent e) {
adaptee.s2_adjustmentValueChanged(e);
}
}
class InformatikAufgabeFrame_s3_adjustmentAdapter implements java.awt.event.AdjustmentListener {
InformatikAufgabeFrame adaptee;
InformatikAufgabeFrame_s3_adjustmentAdapter(InformatikAufgabeFrame adaptee) {
this.adaptee = adaptee;
}
public void adjustmentValueChanged(AdjustmentEvent e) {
adaptee.s3_adjustmentValueChanged(e);
}
}
class InformatikAufgabeFrame_solution_actionAdapter implements java.awt.event.ActionListener {
InformatikAufgabeFrame adaptee;
InformatikAufgabeFrame_solution_actionAdapter(InformatikAufgabeFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.solution_actionPerformed(e);
}
}
class InformatikAufgabeFrame_spielstarten_actionAdapter implements java.awt.event.ActionListener {
InformatikAufgabeFrame adaptee;
InformatikAufgabeFrame_spielstarten_actionAdapter(InformatikAufgabeFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.spielstarten_actionPerformed(e);
}
}
class InformatikAufgabeFrame_soundanaus_actionAdapter implements java.awt.event.ActionListener {
InformatikAufgabeFrame adaptee;
InformatikAufgabeFrame_soundanaus_actionAdapter(InformatikAufgabeFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.soundanaus_actionPerformed(e);
}
}
ich bedanke mich im vorraus für eure hilfe