Methoden Zeichnen auf Button-Druck durch Paint-Methode

razzler141

Neues Mitglied
Hallo miteinander,
ich habe folgendes Problem.

Ich habe mir in einem J-Frame ein Menü erstellt indem man Werte eingeben kann und diese dann auf Buttondruck gezeichnet werden sollen. Wenn ich die Paint-Methode public void paint(Graphics g){...} in das Befehlsfeld für den Button schreibe kommt ein Error. Meine Frage ist nun, wie kann ich die Paint-Methode einfügen die auf Knopfdruck zeichnen soll.

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

/**
*
* Beschreibung
*
* @version 1.0 vom 30.12.2011
* @author
*/

public class elektro extends Frame {
// Anfang Attribute
private Label Zeigerdiagramm = new Label();
private Label Gesamtspannung = new Label();
private Label Frequenz = new Label();
private Label Kapazitaet = new Label();
private Label Widerstand1 = new Label();
private Label Widerstand2 = new Label();
private NumberField numberField1 = new NumberField();
private NumberField numberField2 = new NumberField();
private NumberField numberField3 = new NumberField();
private NumberField numberField4 = new NumberField();
private NumberField numberField5 = new NumberField();
private Button Reset = new Button();
private Button Zeichnen = new Button();
// Ende Attribute

public elektro(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { dispose(); }
});
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);
Panel cp = new Panel(null);
add(cp);
// Anfang Komponenten

Zeigerdiagramm.setBounds(88, 8, 110, 20);
Zeigerdiagramm.setText("Zeigerdiagramm");
cp.add(Zeigerdiagramm);
Gesamtspannung.setBounds(16, 48, 127, 20);
Gesamtspannung.setText("Gesamtspannung in V");
cp.add(Gesamtspannung);
Frequenz.setBounds(16, 88, 110, 20);
Frequenz.setText("Frequenz in Hz");
cp.add(Frequenz);
Kapazitaet.setBounds(16, 128, 110, 20);
Kapazitaet.setText("Kapazitaet in µF");
cp.add(Kapazitaet);
Widerstand1.setBounds(16, 168, 117, 20);
Widerstand1.setText("Widerstand1 in Ohm");
cp.add(Widerstand1);
Widerstand2.setBounds(16, 208, 117, 20);
Widerstand2.setText("Widerstand2 in Ohm");
cp.add(Widerstand2);
numberField1.setBounds(168, 48, 83, 20);
numberField1.setText("");
cp.add(numberField1);
numberField2.setBounds(168, 88, 83, 20);
numberField2.setText("");
cp.add(numberField2);
numberField3.setBounds(168, 128, 83, 20);
numberField3.setText("");
cp.add(numberField3);
numberField4.setBounds(168, 168, 83, 20);
numberField4.setText("");
cp.add(numberField4);
numberField5.setBounds(168, 208, 83, 20);
numberField5.setText("");
cp.add(numberField5);
Reset.setBounds(48, 240, 91, 25);
Reset.setLabel("Reset");
Reset.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
Reset_ActionPerformed(evt);
}
});
cp.add(Reset);
Zeichnen.setBounds(160, 240, 91, 25);
Zeichnen.setLabel("Zeichnen");
Zeichnen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
Zeichnen_ActionPerformed(evt);
}
});
cp.add(Zeichnen);
// Ende Komponenten

setVisible(true);
}

// Anfang Methoden
public void Reset_ActionPerformed(ActionEvent evt) {
numberField1.setText("");
numberField2.setText("");
numberField3.setText("");
numberField4.setText("");
numberField5.setText("");

}

public void Zeichnen_ActionPerformed(ActionEvent evt) {
//Schreibe ich hier public void paint(Graphics g){...} kommt der Fehler
}

// Ende Methoden

public static void main(String[] args) {
new elektro("elektro");
}
}
[/code]
 
Du hast dir einen Frame erstellt und keinen J-Frame(den es so auch erstmal nicht gibt ^^).

Dann lege ich dir nahe, einen JFrame(also Swing) zu verwenden und nicht die paint(); sondern die paintComponent(); zu überschreiben.

alles andere, SuFu nach paintComponent(); fantaszilliarden mal glöst hier im Forum.

Gruß Vanny
 
//Schreibe ich hier public void paint(Graphics g){...} kommt der Fehler

a) so ruft man keine Methoden auf !
b) eine Methode paint gibt es nicht, wo hast du diese überschrieben?
c) repaint() stößt zum Neuzeichnen an!
d) NamingConventions
e) vlt nochmal genauer erklären was gezeichnet werden soll der ein kleines Beispiel (welches man ausführen kann!) aufzeigen
 

Zurück
Oben