Hej koziołek mam taki problem, piszę program na prace licencjacką - troche wyciąłem nie potrzebnego kodu ale zetknąłem sie z takim problemem:
Chce korzystać z wartości zmiennych w geterze ale z poziomu innych klas.
Proszę o pomoc.
public class KlasaMain extends JPanel implements ActionListener {
public static JFrame frame;
private JMenuItem menuPlikAudio;
private JMenuItem menuPlikNoise;
public String fileType;
public Thread watekReadWave;
public Thread watekPlayWave;
public static void main(String[] args) {
KlasaMain obiekt = new KlasaMain();
obiekt.initGUI();
}
public void initGUI() {
[...]
JMenuBar menuBar = new JMenuBar();
JMenu menuPlik = new JMenu("Plik");
menuPlik.setMnemonic(KeyEvent.VK_P);
menuBar.add(menuPlik);
menuPlikAudio = new JMenuItem("Otwórz Plik Dźwiękowy (WAVE)");
menuPlikAudio.addActionListener(this);
menuPlik.add(menuPlikAudio); //dodanie pozycji do menu
menuPlikNoise = new JMenuItem("Otwórz Plik Szumu (WAVE)");
menuPlikNoise.addActionListener(this);
menuPlik.add(menuPlikNoise);
[...]
}
//Interfejsy nasłuchu
public void actionPerformed(ActionEvent e){
if (e.getSource() == menuPlikAudio) { //KlasaOpenAudio
setFileType("audio"); //<span style="color: blue"><------- PRZYPISUJĘ</span>
KlasaOpenAudio obiektOpen = new KlasaOpenAudio();
Thread watekOpenAudio = new Thread(obiektOpen);
System.out.println("KlasaMain: " + getFileType()); //<span style="color: green"><-- TU JEST OK</span>
watekOpenAudio.start();
}
if (e.getSource() == menuPlikNoise) { //KlasaOpenAudio
setFileType("noise");
KlasaOpenAudio koa = new KlasaOpenAudio();
Thread watekOpenAudio = new Thread(koa);
watekOpenAudio.start();
}
}
public void setFileType(String s){
fileType = s;
}
public String getFileType(){
return fileType;
}
}
##############################################33
public class KlasaOpenAudio implements Runnable {
private File openFile;
public String dialog;
public KlasaMain obiektMain = new KlasaMain();
public void run() {
openFile();
}
public void openFile() { //<--- I TU WLAŚNIE SA JUŻ NULLE
if (obiektMain.getFileType() == "audio"){ //<span style="color: red"><-- ŻADEN WARUNEK SIE NIE ZGADZA</span>
dialog = "Wybierz zakłócony plik muzyczny...";
}else if (obiektMain.getFileType() == "noise"){
dialog = "Wybierz plik szumu...";
}
[...]
}
Ogólnie to jest jeden rodzaj zmiennej, chce jeszcze przekazac zmienną typu File w podobny sposob, a takze uzywac tych zmiennych jeszcze w kliku innych klasach, nie wiem jak rozwiązać taki problem, proszę o pomoc.
</b>