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]
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]