gpt4 book ai didi

java - 为什么我的程序的声音在 Eclipse 中可以工作,但在 jar 中生成时却不能

转载 作者:太空宇宙 更新时间:2023-11-04 14:03:17 24 4
gpt4 key购买 nike

经过很长一段时间的编码后,我准备导出我的程序了!但后来我得到了一个奇怪的事情,声音不起作用......但它在 Eclipse 中起作用!你能帮我吗?非常感谢!

package me.NL.framed;


import java.awt.Color;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class JpanelFrame {





public JpanelFrame() {





ImageIcon image = new ImageIcon(getClass().getResource("/Rescources/img/SpashImg.png"));
ImageIcon image2 = new ImageIcon(getClass().getResource("/Rescources/img/Backgroundgame.png"));
JLabel imglabel = new JLabel(image);
JLabel imglabel2 = new JLabel(image2);





// splash screen
JFrame splash = new JFrame("Loading..");
splash.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/Rescources/img/Icon.png")));
splash.setSize(480, 240);
splash.add(imglabel);
splash.setLocationRelativeTo(null);
splash.setResizable(false);
splash.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
splash.setUndecorated(true);

// login stuff

final JButton lb3 = new JButton("Log in");
lb3.setBounds(335,47,90,60);

final JTextField Txp1 = new JTextField();
Txp1.setVisible(false);
Txp1.setBounds(70,50,250,20);

final JTextField Txp3 = new JTextField();
Txp3.setEditable(false);
Txp3.setText("Username:");
Txp3.setBounds(3,48,250,20);
Txp3.setBorder(null);


final JTextField Txp4 = new JTextField();
Txp4.setEditable(false);
Txp4.setText("Password:");
Txp4.setBounds(3,84,250,20);
Txp4.setBorder(null);

final JPasswordField Txp2 = new JPasswordField();
Txp2.setVisible(false);
Txp2.setBounds(70,85,250,20);

// Log in
final JFrame login = new JFrame("Login om te starten");
login.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/Rescources/img/Icon.png")));
login.setSize(480, 240);
login.setLayout(null);
login.add(Txp1);
Txp1.setVisible(true);
login.add(Txp2);
Txp2.setVisible(true);
login.add(lb3);
lb3.setVisible(true);
login.add(Txp3);
Txp3.setVisible(true);
login.add(Txp4);
Txp4.setVisible(true);
login.setLocationRelativeTo(null);
login.setResizable(false);
login.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


try {
splash.setVisible(true);
Sound.playSound("start.wav");
Thread.sleep(5000);
splash.setVisible(false);
login.setVisible(true);
Thread.sleep(600);

} catch (InterruptedException e1) {

e1.printStackTrace();
}



final JButton b1 = new JButton("Nederlands Zinsdeel hulp");
b1.setBounds(300, 200, 370, 40);

final JButton b2 = new JButton("Uitloggen");
b2.setBounds(300, 259, 370, 40);


// Tweede gedeelte

final JLabel Tex1 = new JLabel("Hoe vind je de persoonsvorm?");
Tex1.setForeground(Color.BLACK);



Tex1.setVisible(false);
Tex1.setBounds(250, 350, 500, 20);


final JTextField Tx1 = new JTextField();
Tx1.setVisible(false);
Tx1.setBounds(250,370,500,20);

final JButton b3 = new JButton("Volgende");
b3.setVisible(false);
b3.setBounds(300,400,100,30);

// Derde Gedeelte

final JLabel Tex2 = new JLabel("Hoe krijg je het onderwerp van een zin?");
Tex2.setForeground(Color.BLACK);


Tex2.setVisible(false);
Tex2.setBounds(250, 350, 500, 20);


final JTextField Tx2 = new JTextField();
Tx2.setVisible(false);
Tx2.setBounds(250,370,500,20);

final JButton b4 = new JButton("Volgende");
b4.setVisible(false);
b4.setBounds(300,400,100,30);

// Vierde gedeelte
final JLabel Tex3 = new JLabel("Wat is een werkwoordelijk gezegde (WG)?");
Tex3.setForeground(Color.BLACK);


Tex3.setVisible(false);
Tex3.setBounds(250, 350, 500, 20);


final JTextField Tx3 = new JTextField();
Tx3.setVisible(false);
Tx3.setBounds(250,370,500,20);

final JButton b5 = new JButton("Volgende");
b5.setVisible(false);
b5.setBounds(300,400,100,30);



// Vijfde gedeelte
final JLabel Tex4 = new JLabel("Wat is een lijdend voorwerp?");
Tex4.setForeground(Color.BLACK);


Tex4.setVisible(false);
Tex4.setBounds(250, 350, 500, 20);


final JTextField Tx4 = new JTextField();
Tx4.setVisible(false);
Tx4.setBounds(250,370,500,20);

final JButton b6 = new JButton("Volgende");
b6.setVisible(false);
b6.setBounds(300,400,100,30);

// Zesde gedeelte

final JLabel Tex5 = new JLabel("Wat is een meewerkend voorwerp?");
Tex5.setForeground(Color.BLACK);


Tex5.setVisible(false);
Tex5.setBounds(250, 350, 500, 20);


final JTextField Tx5 = new JTextField();
Tx5.setVisible(false);
Tx5.setBounds(250,370,500,20);

final JButton b7 = new JButton("Volgende");
b7.setVisible(false);
b7.setBounds(300,400,100,30);


// zevende gedeelte
final JLabel Tex6 = new JLabel("Wat is een bijwoordelijke bepaling?");
Tex6.setForeground(Color.BLACK);


Tex6.setVisible(false);
Tex6.setBounds(250, 350, 500, 20);


final JTextField Tx6 = new JTextField();
Tx6.setVisible(false);
Tx6.setBounds(250,370,500,20);

final JButton b8 = new JButton("Volgende");
b8.setVisible(false);
b8.setBounds(300,400,100,30);

// achtste gedeelte


final JLabel Tex7 = new JLabel("Wat is een bijwoordelijke bepaling?");
Tex7.setForeground(Color.BLACK);


Tex7.setVisible(false);
Tex7.setBounds(250, 350, 500, 20);


final JTextField Tx7 = new JTextField();
Tx7.setVisible(false);
Tx7.setBounds(250,370,500,20);

final JButton b9 = new JButton("Volgende");
b9.setVisible(false);
b9.setBounds(300,400,100,30);
// negende gedeelte

// tiende gedeelte

final JLabel Tex8 = new JLabel("Wat is het onderwerp in deze zin?");
Tex8.setForeground(Color.BLACK);


Tex8.setVisible(false);
Tex8.setBounds(250, 350, 500, 20);

final JTextArea ow1 = new JTextArea("De kat rent weg van de man.");
ow1.setEditable(false);


ow1.setVisible(false);
ow1.setBounds(250, 350, 500, 20);



final JTextField Tx8 = new JTextField();
Tx8.setVisible(false);
Tx8.setBounds(250,370,500,20);

final JButton b10 = new JButton("Volgende");
b10.setVisible(false);
b10.setBounds(300,400,100,30);
// negende gedeelte

// elfde gedeelte


b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
b1.setVisible(false);
b2.setBounds(300, 725, 370, 40);
b3.setVisible(true);
Tx1.setVisible(true);
Tex1.setVisible(true);

}

});





b3.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {




if(Tx1.getText().contains("andere tijd") || Tx1.getText().contains("verleden tijd") || Tx1.getText().contains("vraagzin")) {
Tex1.setVisible(false);
Tx1.setVisible(false);
b3.setVisible(false);
Score.goed++;
Score.Streak++;
if(Score.Streak == 1) {
Sound.playSound("Wow.wav");
} else if(Score.Streak == 2) {
Sound.playSound("damnson.wav");
} else if(Score.Streak == 3) {
Sound.playSound("Triple.wav");
} else if(Score.Streak == 4) {
Sound.playSound("neverdone.wav");
} else if(Score.Streak == 5) {
Sound.playSound("airhorn.wav");
} else if(Score.Streak == 6) {
Sound.playSound("omgtrick.wav");
} else if(Score.Streak == 7) {
Sound.playSound("camera.wav");
} else if(Score.Streak == 8) {
Sound.playSound("omygod.wav");
} else if(Score.Streak == 9) {
Sound.playSound("scaryskrill.wav");
} else if(Score.Streak == 10) {
Sound.playSound("SANIC.wav");
} else if(Score.Streak == 11) {
Sound.playSound("illuminati.wav");
} else if(Score.Streak == 12) {
Sound.playSound("Tactical.wav");
}
// Sound.listSounds();

Tex2.setVisible(true);
Tx2.setVisible(true);
b4.setVisible(true);
} else {
Score.fout++;
Score.Streak = 0;
}
}
});


b4.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
if(Tx2.getText().contains("wie/wat + persoonsvorm") || Tx2.getText().contains("wie of wat en persoonsvorm")
|| Tx2.getText().contains("wie of wat + persoonsvorm") || Tx2.getText().contains("wie/wat en persoonsvorm")) {
Tex2.setVisible(false);
Tx2.setVisible(false);
b4.setVisible(false);
Score.goed++;
Score.Streak++;
if(Score.Streak == 1) {
Sound.playSound("Wow.wav");
} else if(Score.Streak == 2) {
Sound.playSound("damnson.wav");
} else if(Score.Streak == 3) {
Sound.playSound("Triple.wav");
} else if(Score.Streak == 4) {
Sound.playSound("neverdone.wav");
} else if(Score.Streak == 5) {
Sound.playSound("airhorn.wav");
} else if(Score.Streak == 6) {
Sound.playSound("omgtrick.wav");
} else if(Score.Streak == 7) {
Sound.playSound("camera.wav");
} else if(Score.Streak == 8) {
Sound.playSound("omygod.wav");
} else if(Score.Streak == 9) {
Sound.playSound("scaryskrill.wav");
} else if(Score.Streak == 10) {
Sound.playSound("SANIC.wav");
} else if(Score.Streak == 11) {
Sound.playSound("illuminati.wav");
} else if(Score.Streak == 12) {
Sound.playSound("Tactical.wav");
}

Tex3.setVisible(true);
Tx3.setVisible(true);
b5.setVisible(true);



} else {
Score.fout++;
Score.Streak = 0;
}
}

});

b5.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
if(Tx3.getText().contains("werkwoorden")) {
Tex3.setVisible(false);
Tx3.setVisible(false);
b5.setVisible(false);
Score.goed++;
Score.Streak++;
if(Score.Streak == 1) {
Sound.playSound("Wow.wav");
} else if(Score.Streak == 2) {
Sound.playSound("damnson.wav");
} else if(Score.Streak == 3) {
Sound.playSound("Triple.wav");
} else if(Score.Streak == 4) {
Sound.playSound("neverdone.wav");
} else if(Score.Streak == 5) {
Sound.playSound("airhorn.wav");
} else if(Score.Streak == 6) {
Sound.playSound("omgtrick.wav");
} else if(Score.Streak == 7) {
Sound.playSound("camera.wav");
} else if(Score.Streak == 8) {
Sound.playSound("omygod.wav");
} else if(Score.Streak == 9) {
Sound.playSound("scaryskrill.wav");
} else if(Score.Streak == 10) {
Sound.playSound("SANIC.wav");
} else if(Score.Streak == 11) {
Sound.playSound("illuminati.wav");
} else if(Score.Streak == 12) {
Sound.playSound("Tactical.wav");
}

Tex4.setVisible(true);
Tx4.setVisible(true);
b6.setVisible(true);

} else {
Score.fout++;
Score.Streak = 0;
}


}

});

b6.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
if(Tx4.getText().contains("zinsdelen") || Tx4.getText().contains("Wie of wat + alle eerder gevonden zinsdelen")
|| Tx4.getText().contains("Wie/wat en alle eerder gevonden zinsdelen") || Tx4.getText().contains("Wie of wat en alle eerder gevonden zinsdelen")) {

Tex4.setVisible(false);
Tx4.setVisible(false);
b6.setVisible(false);
Score.goed++;
Score.Streak++;
if(Score.Streak == 1) {
Sound.playSound("Wow.wav");
} else if(Score.Streak == 2) {
Sound.playSound("damnson.wav");
} else if(Score.Streak == 3) {
Sound.playSound("Triple.wav");
} else if(Score.Streak == 4) {
Sound.playSound("neverdone.wav");
} else if(Score.Streak == 5) {
Sound.playSound("airhorn.wav");
} else if(Score.Streak == 6) {
Sound.playSound("omgtrick.wav");
} else if(Score.Streak == 7) {
Sound.playSound("camera.wav");
} else if(Score.Streak == 8) {
Sound.playSound("omygod.wav");
} else if(Score.Streak == 9) {
Sound.playSound("scaryskrill.wav");
} else if(Score.Streak == 10) {
Sound.playSound("SANIC.wav");
} else if(Score.Streak == 11) {
Sound.playSound("illuminati.wav");
} else if(Score.Streak == 12) {
Sound.playSound("Tactical.wav");
}

Tex5.setVisible(true);
Tx5.setVisible(true);
b7.setVisible(true);

} else {
Score.fout++;
Score.Streak = 0;
}
}

});

b7.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
if(Tx5.getText().contains("plaats of ... ...tijd tijd") || Tx5.getText().contains("plaats of tijd")) {
Tex5.setVisible(false);
Tx5.setVisible(false);
b7.setVisible(false);
Score.goed++;
Score.Streak++;
if(Score.Streak == 1) {
Sound.playSound("Wow.wav");
} else if(Score.Streak == 2) {
Sound.playSound("damnson.wav");
} else if(Score.Streak == 3) {
Sound.playSound("Triple.wav");
} else if(Score.Streak == 4) {
Sound.playSound("neverdone.wav");
} else if(Score.Streak == 5) {
Sound.playSound("airhorn.wav");
} else if(Score.Streak == 6) {
Sound.playSound("omgtrick.wav");
} else if(Score.Streak == 7) {
Sound.playSound("camera.wav");
} else if(Score.Streak == 8) {
Sound.playSound("omygod.wav");
} else if(Score.Streak == 9) {
Sound.playSound("scaryskrill.wav");
} else if(Score.Streak == 10) {
Sound.playSound("SANIC.wav");
} else if(Score.Streak == 11) {
Sound.playSound("illuminati.wav");
} else if(Score.Streak == 12) {
Sound.playSound("Tactical.wav");
}

Tex6.setVisible(true);
Tx6.setVisible(true);
b8.setVisible(true);


} else {
Score.fout++;
Score.Streak = 0;
}
}
});


b8.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
if(Tx6.getText().contains("zelfstandig naamwoord")) {
Tex6.setVisible(false);
Tx6.setVisible(false);
b8.setVisible(false);
Score.goed++;
Score.Streak++;
if(Score.Streak == 1) {
Sound.playSound("Wow.wav");
} else if(Score.Streak == 2) {
Sound.playSound("damnson.wav");
} else if(Score.Streak == 3) {
Sound.playSound("Triple.wav");
} else if(Score.Streak == 4) {
Sound.playSound("neverdone.wav");
} else if(Score.Streak == 5) {
Sound.playSound("airhorn.wav");
} else if(Score.Streak == 6) {
Sound.playSound("omgtrick.wav");
} else if(Score.Streak == 7) {
Sound.playSound("camera.wav");
} else if(Score.Streak == 8) {
Sound.playSound("omygod.wav");
} else if(Score.Streak == 9) {
Sound.playSound("scaryskrill.wav");
} else if(Score.Streak == 10) {
Sound.playSound("SANIC.wav");
} else if(Score.Streak == 11) {
Sound.playSound("illuminati.wav");
} else if(Score.Streak == 12) {
Sound.playSound("Tactical.wav");
}

Tex7.setVisible(true);
Tx7.setVisible(true);
b9.setVisible(true);


} else {
Score.fout++;
Score.Streak = 0;
}


}

});

b9.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
if(Tx7.getText().contains("zelfstandig naamwoord")) {
Tex7.setVisible(false);
Tx7.setVisible(false);
b9.setVisible(false);
Score.goed++;
Score.Streak++;
if(Score.Streak == 1) {
Sound.playSound("Wow.wav");
} else if(Score.Streak == 2) {
Sound.playSound("damnson.wav");
} else if(Score.Streak == 3) {
Sound.playSound("Triple.wav");
} else if(Score.Streak == 4) {
Sound.playSound("neverdone.wav");
} else if(Score.Streak == 5) {
Sound.playSound("airhorn.wav");
} else if(Score.Streak == 6) {
Sound.playSound("omgtrick.wav");
} else if(Score.Streak == 7) {
Sound.playSound("camera.wav");
} else if(Score.Streak == 8) {
Sound.playSound("omygod.wav");
} else if(Score.Streak == 9) {
Sound.playSound("scaryskrill.wav");
} else if(Score.Streak == 10) {
Sound.playSound("SANIC.wav");
} else if(Score.Streak == 11) {
Sound.playSound("illuminati.wav");
} else if(Score.Streak == 12) {
Sound.playSound("Tactical.wav");
}

Tex8.setVisible(true);
Tx8.setVisible(true);
b10.setVisible(true);


} else {
Score.fout++;
}


}

});











final JFrame frame = new JFrame("Nederlands hulp");


frame.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/Rescources/img/Icon.png")));


frame.setSize(1000, 800);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);

// Knoppen
frame.add(b1);
frame.add(b2);
frame.add(b3);
frame.add(b4);
frame.add(b5);
frame.add(b6);
frame.add(b7);
frame.add(b8);
frame.add(b9);
frame.add(b10);


// Textfields
frame.add(Tx1);
frame.add(Tx2);
frame.add(Tx3);
frame.add(Tx4);
frame.add(Tx5);
frame.add(Tx6);
frame.add(Tx7);
frame.add(Tx8);

// Text areas
frame.add(Tex1);
frame.add(Tex2);
frame.add(Tex3);
frame.add(Tex4);
frame.add(Tex5);
frame.add(Tex6);
frame.add(Tex7);
frame.add(Tex8);

// Ander
frame.add(ow1);

frame.add(imglabel2);
imglabel2.setBounds(0, 0, 1000, 800);

frame.setLocationRelativeTo(null);
frame.getContentPane().setBackground(Color.BLACK);
frame.setLayout(null);



b2.addActionListener(new ActionListener() {


public void actionPerformed(ActionEvent e) {
System.exit(0);
System.out.println("Alle Taken Gestopt");

}

});

lb3.addActionListener(new ActionListener() {




@SuppressWarnings("deprecation")
@Override
public void actionPerformed(ActionEvent e) {
if(Txp1.getText().contains("leerling") && Txp2.getText().contains("78132")) {
login.setVisible(false);
frame.setVisible(true);

}

}

});

// eerste gedeelte




}
public static void main(String[] args) {
new JpanelFrame();


}



}

/*
*
* Toevoegen:
* MLG Geluid op goed streak [Klaar]
* Meer dingen voor frame
* Frame achtergrond
* knop plaatje
* Splash screen [Klaar]
* Login [Klaar]
*/

我的音频类是:

 package me.NL.framed;

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;

public class Sound {





public static synchronized void playSound(final String url) {





new Thread(new Runnable() { // the wrapper thread is unnecessary, unless it blocks on the Clip finishing, see comments
public void run() {

try {
Clip clip = AudioSystem.getClip();
AudioInputStream inputStream = A udioSystem.getAudioInputStream(Sound.class.getResource("/Rescources/" + url));
clip.open(inputStream);
clip.start();
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
}).start();
}




}

最佳答案

在任何场景下,您都需要确保所表示的资源

"/Rescources/" + url

实际上可以在您的类路径中以 jar 或文件夹的形式提供。

它在 Eclipse 中工作的原因可能是因为 Eclipse 可能会将资源文件夹复制到您的 bin 或类目录。

关于java - 为什么我的程序的声音在 Eclipse 中可以工作,但在 jar 中生成时却不能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29106534/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com