Auf Button-Druck zeichnen

coldice

Mitglied
Hallo,
ich habe eine Frage zum Zeichnen in Java mit paint().
In meinem Programm will ich, dass wenn der Button "Zeichnen" gedrückt wird dieser Programmbefehl ausgeführt wird:
[JAVA=42]
public void paint(Graphics g){
double Ugesamt = Double.parseDouble(textField1.getText());
double kapazitaet = Double.parseDouble(textField2.getText());
double frequenz = Double.parseDouble(textField3.getText());
double R1 = Double.parseDouble(textField4.getText());
double R2 = Double.parseDouble(textField5.getText());
Xc = 1/(2*Math.PI*frequenz*kapazitaet);
Z = Math.sqrt(Math.pow(R1,2) + Math.pow(Xc,2));
I2 = Ugesamt/Z;
Ur2 = I2*R2;
Uc2 = I2*Xc;
I1 = Ugesamt/R1;
int I1neu = (int) I1;
g.drawLine(100,100,200+I1neu,100);
}
[/code]
Die Frage ist jetzt, wie und wo füge ich diesen Programmteil ein, dass er beim Buttondruck aufgerufen wird. Diesen Teil kann ich ja nicht in public void button1_ActionPerformed(ActionEvent evt) {} einfügen weil es dann einen Error verursacht. Hier ist das gesamte Programm:

[JAVA=42]
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class zeigerdiagrammts extends JFrame {
// Anfang Attribute
double frequenz;
double kapazitaet;
double R1;
double R2;
double Ugesamt;
double Xc;
double Z;
double I2;
double Ur2;
double Uc2;
double I1;
private Label label1 = new Label();
private Label label2 = new Label();
private Label label3 = new Label();
private Label label4 = new Label();
private Label label5 = new Label();
private Label label6 = new Label();
private TextField textField1 = new TextField();
private TextField textField2 = new TextField();
private TextField textField3 = new TextField();
private TextField textField4 = new TextField();
private TextField textField5 = new TextField();
private Button button1 = new Button();
private Button button2 = new Button();
// Ende Attribute

public zeigerdiagrammts(String title) {
// Frame-Initialisierung
super(title);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int frameWidth = 300;
int frameHeight = 300;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
setResizable(false);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten

label1.setBounds(88, 24, 126, 20);
label1.setText("Zeigerdiagramm");
cp.add(label1);
label2.setBounds(16, 64, 134, 20);
label2.setText("Gesamtspannung in V");
cp.add(label2);
label3.setBounds(16, 96, 134, 20);
label3.setText("Frequenz in Hz");
cp.add(label3);
label4.setBounds(16, 128, 134, 20);
label4.setText("Kapazität in µF");
cp.add(label4);
label5.setBounds(16, 160, 134, 20);
label5.setText("Widerstand 1 in Ohm");
cp.add(label5);
label6.setBounds(16, 192, 134, 20);
label6.setText("Widerstand 2 in Ohm");
cp.add(label6);
textField1.setBounds(160, 64, 134, 20);
cp.add(textField1);
textField2.setBounds(160, 96, 134, 20);
cp.add(textField2);
textField3.setBounds(160, 128, 134, 20);
cp.add(textField3);
textField4.setBounds(160, 160, 134, 20);
cp.add(textField4);
textField5.setBounds(160, 192, 134, 20);
cp.add(textField5);
button1.setBounds(64, 240, 83, 25);
button1.setLabel("Reset");
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button1_ActionPerformed(evt);
}
});
cp.add(button1);
button2.setBounds(160, 240, 83, 25);
button2.setLabel("Zeichnen");
button2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
button2_ActionPerformed(evt);
}
});
cp.add(button2);
// Ende Komponenten

setVisible(true);
}

// Anfang Methoden
public void button1_ActionPerformed(ActionEvent evt) {
textField1.setText("");
textField2.setText("");
textField3.setText("");
textField4.setText("");
textField5.setText("");
}

public void button2_ActionPerformed(ActionEvent evt) {

//hier sollte eigentlich der Programmteil von oben stehen aber das geht ja nicht..

}

// Ende Methoden

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

[/code]
 
Zuletzt bearbeitet von einem Moderator:

Zurück
Oben