Hallo,
ich habe folgendes Problem:
Ich habe eine Main Klasse "SignalAusgeben" und in der erzeuge ich durch klick auf einem JButton ein Objekt der Klasse "SignalErzeugen". In der Klasse "SignalErzeugen wird dann ein Array mit Zahlen gefüllt.
Ich möchte nun in der main Klasse "SignalAusgeben" dieses Array aufrufen und dann später in die Übergabeparameter eines anderen Objekt übergeben.
Ich möchte das Array Störung gerne in der Klasse "Signalausgeben" haben und anschließend der Klasse "Filter zu übergeben. Da sÜbergeben sollte denk ich für moich nicht das große Problem sein. Habe mit SysOutprint versucht mir den Array Inhalt in der main klasse anzeigen zu lassen. aber leider bekom ich imer nur eine 0.
Hier mal mein Quelltext, hoffe es ist darstellungsmäßig gut zu erkennen:
Vielen Dank schon einmal im voraus!
Hauptklasse:
ich habe folgendes Problem:
Ich habe eine Main Klasse "SignalAusgeben" und in der erzeuge ich durch klick auf einem JButton ein Objekt der Klasse "SignalErzeugen". In der Klasse "SignalErzeugen wird dann ein Array mit Zahlen gefüllt.
Ich möchte nun in der main Klasse "SignalAusgeben" dieses Array aufrufen und dann später in die Übergabeparameter eines anderen Objekt übergeben.
Ich möchte das Array Störung gerne in der Klasse "Signalausgeben" haben und anschließend der Klasse "Filter zu übergeben. Da sÜbergeben sollte denk ich für moich nicht das große Problem sein. Habe mit SysOutprint versucht mir den Array Inhalt in der main klasse anzeigen zu lassen. aber leider bekom ich imer nur eine 0.
Hier mal mein Quelltext, hoffe es ist darstellungsmäßig gut zu erkennen:
Vielen Dank schon einmal im voraus!
Hauptklasse:
Java:
package Signalfilter;
import java.awt.BorderLayout;
public class SignaleAusgeben extends JFrame {
private JPanel contentPane;
private JTextField textField;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
SignaleAusgeben frame = new SignaleAusgeben();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public SignaleAusgeben() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(5, 5, 1100, 700);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JButton btnZeichnen = new JButton("Zeichnen");
btnZeichnen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
SignaleErzeugen D1 = new SignaleErzeugen(contentPane);
D1. setBounds(5, 100, 1100, 450);
contentPane.add(D1);
contentPane.setVisible(true);
contentPane.repaint();
int st [] = new int [40];
for (int i = 0; i < 40; i++) {
st [i] = D1.Störung[i];
System.out.print(st [i] + " ");
}
Filter F1 = new Filter (contentPane, st);
F1. setBounds(5, 100, 1100, 450);
contentPane.add(F1);
contentPane.setVisible(true);
contentPane.repaint();
}
});
btnZeichnen.setBounds(10, 10, 89, 23);
contentPane.add(btnZeichnen);
JLabel Signal = new JLabel("Original");
Signal.setBounds(20, 170, 70, 25);
contentPane.add(Signal);
JLabel Stör = new JLabel("Störsignal");
Stör.setBounds(20, 350, 70, 25);
contentPane.add(Stör);
}
}
Java:
package Signalfilter;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.text.StyledEditorKit.ForegroundAction;
public class SignaleErzeugen extends JPanel {
public static final long serialVersionUID = 1L;
JPanel Ausgabekontext;
int Störung [] = new int [40];
SignaleErzeugen (JPanel Ausgabekontext){
this.Ausgabekontext = Ausgabekontext;
}
protected void paintComponent (Graphics g){
super.paintComponents(g);
int breite = Ausgabekontext.getWidth()-110;
int höhe = Ausgabekontext.getHeight()-217;
g.setColor(Color.LIGHT_GRAY);
g.fillRect(5, 5, breite, höhe);
g.setColor(Color.BLUE);
//Attribute
int Signal [] = new int [40];
int Störsignal [] = new int [40];
int a;
double b;
int aa = 5, bb = 14, cc = 18, dd = 26;
for (int i = 0; i < Signal.length/4-1; i++) {
//Binär Signal 1 oder 0 erzeugen
b = Math.random();
b = Math.round(b);
a = (int) (b);
//Signal ins Array schreiben
Signal [i*4] = Störsignal [i*4] = Störung [i*4] = a;
Signal [(i*4)+1] = Störsignal [(i*4)+1] = Störung [(i*4)+1] = a;
Signal [(i*4)+2] = Störsignal [(i*4)+2] = Störung [(i*4)+2] = a;
Signal [(i*4)+3] = Störsignal [(i*4)+3] = Störung [(i*4)+3] = a;
Signal [(i*4)+4] = Störsignal [(i*4)+4] = Störung [(i*4)+4] = a;
}
//Wertre an 4 Stellen umdrehen //Ströung
Störsignal [aa] = (Störsignal [aa] -1 ) * (-1);
Störsignal [bb] = (Störsignal [bb] -1 ) * (-1);
Störsignal [cc] = (Störsignal [cc] -1 ) * (-1);
Störsignal [dd] = (Störsignal [dd] -1 ) * (-1);
Störung = Störsignal; //Störsignal array in das Array Störung schreiben
//Zeichnen
for (int i = 0; i < Signal.length-1; i++) {
int Xmax = breite -110;
int X = (int) (i*Xmax/Signal.length)+100;
int X2 = (int) ((i+1)*Xmax/Signal.length)+100;
g.setColor(Color.BLUE);
g.fillRect(X, 70-Signal[i]*40+10, 10, Signal[i]*40+10);
g.setColor(Color.ORANGE);
g.fillRect(X, 260-Störsignal[i]*40+10, 10, Störsignal[i]*40+10);
g.setColor(Color.RED);
g.drawLine(X, 150- Signal[i]*40+10, X2, 150- Signal[i]*40+10);
g.drawLine(X2, 150- Signal[i]*40+10, X2, 150- Signal[i+1]*40+10);
}
int Xmax2 = breite -110;
g.setColor(Color.YELLOW);
g.fillRect((int) (5*Xmax2/Signal.length)+100, 140-Störsignal[5]*40+10, 10, Störsignal[5]*40+10);
g.fillRect((int) (14*Xmax2/Signal.length)+100, 140-Störsignal[14]*40+10, 10, Störsignal[14]*40+10);
g.fillRect((int) (18*Xmax2/Signal.length)+100, 140-Störsignal[18]*40+10, 10, Störsignal[18]*40+10);
g.fillRect((int) (26*Xmax2/Signal.length)+100, 140-Störsignal[26]*40+10, 10, Störsignal[26]*40+10);
//zeichnen ende
}
}