Button soll neuen Frame öffnen

Rave

Bekanntes Mitglied
Hallo Leute,
ich hab ein kleinen Problem. Ich möchte das ein Button aus Frame 1 durch einen klick ein neues Frame öffnet.

Geschrieben ist es bei mir so:

Java:
private Anleitung anleitung;

...

Java:
   public void button7_ActionPerformed(ActionEvent evt) {
     anleitung.show();
  }

Weiss jemand wo das Problem liegt ich komm irgendwie nicht weiter.

Ich bekomm immer diesen NullPointer :

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Funktionsplotter.button7_ActionPerformed(Funktionsplotter.java:319)
at Funktionsplotter$8.actionPerformed(Funktionsplotter.java:197)
at java.awt.Button.processActionEvent(Button.java:392)
at java.awt.Button.processEvent(Button.java:360)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:617)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
 
D

Dow Jones

Gast
Erste Vermutung: Hast du anleitung auch irgendwo initialisiert? (
Code:
anleitung = new Anleitung()
)? ;-)
Ansonsten poste mal mehr von deinem Code.
 

Rave

Bekanntes Mitglied
Erste Vermutung: Hast du anleitung auch irgendwo initialisiert? (
Code:
anleitung = new Anleitung()
)? ;-)
Ansonsten poste mal mehr von deinem Code.

Eigentlich ja, aber da ich total Anfänger bin weiss ich nicht ob es die richtige Stelle ist

Java:
  //Anleitung
  anleitung = new Anleitung();
  private Anleitung anleitung;
  // Ende Attribute

So hab ich es initialisiert!

Und das ist der Frame der geöffnet werden soll:
Java:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;

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

public class Anleitung extends Frame {
  // Anfang Attribute

  private TextArea ta = new TextArea("", 1, 1, TextArea.SCROLLBARS_BOTH);
  // Ende Attribute

  public Anleitung(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);
    Panel cp = new Panel(null);
    add(cp);
    // Anfang Komponenten

    ta.setText("Anleitung zum Funktionsplotter 1.1\n\nAlle Textfelder müssen ausgefüllt sein!\nZoomfaktor kann variabel eingegeben werden!");
    ta.setBounds(0, 0, 300, 300);
    ta.setEditable(false);
    cp.add(ta);

    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }

  // Anfang Methoden
  // Ende Methoden

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

Blakh

Bekanntes Mitglied
Wieso ist da eine main-Methode drin, welche sozusagen das Frame öffnet?!

Java:
  //Anleitung
  anleitung = new Anleitung();
  private Anleitung anleitung;
  // Ende Attribute

Du initialisierst die Variable bevor du sie deklarierst und anscheinend außerhalb einer Methode im Klassenrumpf ???:L.
 
Zuletzt bearbeitet:

jgh

Top Contributor
da deine Anleitung ja nichts weiter ist, als ein "info-Fenster" (oder ? ) ...warum machst du in deiner Action-Performed-Methode nicht einfach:

Java:
 public void button7_ActionPerformed(ActionEvent evt) {
     new Anleitung("Anleitung");
  }

und btw....den Codeteil kann man auch abkürzen ;)

Java:
 //Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
  //  int x = (d.width - getSize().width) / 2;
  //  int y = (d.height - getSize().height) / 2;
   setLocationRelativeTo(null);
 
Zuletzt bearbeitet:

Rave

Bekanntes Mitglied
So ich poste jetzt einfach mal fast den kompletten Quellcode ;)

Java:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;



public class Funktionsplotter extends Frame {
  // Anfang Attribute
  boolean draw = false;
  float f,j,h,p1,p2,p3,p4,p5;
  float zoom = 1;
  //Textfelder
  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 TextField textField6 = new TextField();
  //Label
  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 Label label7 = new Label();
  private Label label8 = new Label();
  private Label label9 = new Label();
  private Label label10 = new Label();
  //Buttons
  private Button button1 = new Button();
  private Button button2 = new Button();
  private Button button3 = new Button();
  private Button button4 = new Button();
  private Button button5 = new Button();
  private Button button6 = new Button();
  private Button button7 = new Button();
  //Text Area
  private TextArea tabelle = new TextArea("", 1, 1, TextArea.SCROLLBARS_BOTH);
  //Anleitung
  anleitung = new Anleitung();
  private Anleitung anleitung;
  // Ende Attribute

  public Funktionsplotter(String title) {
    // Frame-Initialisierung
    super(title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent evt) { System.exit(0); }
    });
    int frameWidth = 1000;
    int frameHeight = 800;
    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);
    this.setLayout(null);
    this.setBackground(Color.lightGray);
    //Panel anlegen
    Panel cp = new Panel(null);
    add(cp);
    cp.setBounds(700,0,300,700);
    cp.setBackground(Color.gray);
    Panel cp2 = new Panel(null);
    add(cp2);
    cp2.setBounds(0,700,1000,100);
    cp2.setBackground(Color.gray);
    // Anfang Komponenten
    //Textfield
    textField1.setBounds(64, 87, 30, 24);
    textField1.setText("0");
    cp.add(textField1);
    textField2.setBounds(51, 59, 28, 24);
    textField2.setText("0");
    cp.add(textField2);
    textField3.setBounds(116, 60, 28, 24);
    textField3.setText("0");
    cp.add(textField3);
    textField4.setBounds(138, 88, 30, 24);
    textField4.setText("0");
    cp.add(textField4);
    textField5.setBounds(197, 89, 25, 24);
    textField5.setText("0");
    cp.add(textField5);
    textField6.setBounds(170, 625, 33, 24);
    textField6.setText("1");
    cp.add(textField6);
    //Label
    label1.setBounds(27, 60, 24, 24);
    label1.setText("f(x)=");
    label1.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label1);
    label2.setBounds(83, 61, 32, 16);
    label2.setText("x^4+");
    label2.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label2);
    label3.setBounds(147, 63, 20, 16);
    label3.setText("x^3");
    label3.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label3);
    label4.setBounds(100, 92, 33, 16);
    label4.setText("x^2 +");
    label4.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label4);
    label5.setBounds(172, 92, 24, 16);
    label5.setText("x +");
    label5.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label5);
    label6.setBounds(46, 91, 14, 16);
    label6.setText("+");
    label6.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label6);
    label7.setBounds(29, 190, 214, 16);
    label7.setText("HINWEISE!");
    label7.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label7);
    label9.setBounds(29, 210, 214, 16);
    label9.setText("Jedes Feld benötigt eine Eingabe!");
    label9.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label9);

    //Überschrift
    label10.setBounds(29, 25, 214, 16);
    label10.setText("Funktionsplotter 1.1");
    label10.setFont(new Font("MS Sans Serif", Font.PLAIN, 18));
    cp.add(label10);

    //Text
    label8.setBounds(152, 600, 68, 16);
    label8.setText("Zoomfaktor");
    label8.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label8);

    //Buttons
    button1.setBounds(24, 135, 97, 33);
    button1.setLabel("Zeichne");
    button1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button1_ActionPerformed(evt);
      }
    });
    cp.add(button1);
    button2.setBounds(24, 590, 121, 41);
    button2.setLabel("Reinzoomen");
    button2.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button2_ActionPerformed(evt);
      }
    });
    cp.add(button2);
    button3.setBounds(24, 640, 121, 41);
    button3.setLabel("Rauszoomen");
    button3.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button3_ActionPerformed(evt);
      }
    });
    cp.add(button3);
    button4.setBounds(224, 595, 57, 89);
    button4.setLabel("Zoomen");
    button4.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button4_ActionPerformed(evt);
      }
    });
    cp.add(button4);
    button5.setBounds(136, 136, 89, 33);
    button5.setLabel("Ableitung");
    button5.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button5_ActionPerformed(evt);
      }
    });
    cp.add(button5);
    
    button6.setBounds(25, 50, 89, 33);
    button6.setLabel("Schliessen");
    button6.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button6_ActionPerformed(evt);
      }
    });
    cp2.add(button6);
    
    button7.setBounds(100, 50, 89, 33);
    button7.setLabel("Anleitung");
    button7.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button7_ActionPerformed(evt);
      }
    });
    cp2.add(button7);

    //Wertetabelle
    tabelle.setText("");
    tabelle.setEditable(false);
    tabelle.setBounds(25, 250, 240, 300);
    cp.add(tabelle);

    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }
  
  public float pot (float x,float ex)  //Potenzieren
  {
    float y =1;
    for (float i = 0; i< ex; i++)
    {
      y = y*x;
    }
    return y;
  }
  
  public float func (float x)
  {
    float y = p1
    *pot(x,4)+p2
    *pot(x,3)+p3
    *pot(x,2)+p4
    *x+p5;
    return y;
  }

  //Ableitung bilden
  public void Abl ()
  {
    float koef4, koef3, koef2, koef1;
    koef4=Float.valueOf(textField2.getText());
    koef3=Float.valueOf(textField3.getText());
    koef2=Float.valueOf(textField1.getText());
    koef1=Float.valueOf(textField4.getText());
    textField2.setText(""+0.0);
    textField3.setText(""+(koef4*4));
    textField1.setText(""+(koef3*3));
    textField4.setText(""+(koef2*2));
    textField5.setText(""+koef1);
  }
  
  public void paint (Graphics g)
  {
    //Nullpunkt bei: 350|350
    g.drawLine(0,350,700,350);
    g.drawLine(350,0,350,700);
    g.setColor(Color.red);
    tabelle.setText("Wertetabelle"+"\n");
    if(draw == true)
    {
      p1 = Float.valueOf(textField2.getText());  //Koeffizienten werden aus den Textfeldern gelesen
      p2 = Float.valueOf(textField3.getText());
      p3 = Float.valueOf(textField1.getText());
      p4 = Float.valueOf(textField4.getText());
      p5 = Float.valueOf(textField5.getText());
      for (float i = -350; i<350; i=i+zoom) //x-Werte von -350 bis 350 werden durchgegangen
      {
        f = func(i); //Funktionswert zum momentanen X-Wert wird gebildet
        j = i+zoom;
        h = func(j);
        int x1,x2,y1,y2;
        x1=(int)(i/zoom);
        x2=(int)(j/zoom);
        y1=(int)(f/zoom);
        y2=(int)(h/zoom);
        g.drawLine(350+x1,350 - y1,350+x2,350 - y2);
        // Wertetabelle
        tabelle.setText(tabelle.getText()+" X= "+i+"                   "+" Y= "+f+"\n");
      }
    }
  }

  // Anfang Methoden
  public void button1_ActionPerformed(ActionEvent evt) {
    // ZEICHNEN
    draw = true; //Funktionsplotter soll gezeichnet werden
    repaint();
  }

  public void button2_ActionPerformed(ActionEvent evt) {
    // REINZOOMEN
    zoom=zoom/2;
    textField6.setText(""+(1/zoom));
    repaint();
  }

  public void button3_ActionPerformed(ActionEvent evt) {
    // RAUSZOOMEN
    zoom=zoom*2;
    textField6.setText(""+(1/zoom));
    repaint();
  }

  public void button4_ActionPerformed(ActionEvent evt) {
    // ZOOM aus Textfenster
    zoom=1/Float.valueOf(textField6.getText());
    repaint();
  }

  public void button5_ActionPerformed(ActionEvent evt) {
    // ABLEITUNG ZEICHNEN
    Abl(); //Ableitung wird gebildet
    draw = true; //Funktionsplotter soll gezeichnet werden
    repaint();
  }

  public void button6_ActionPerformed(ActionEvent evt) {
    dispose();
  }
  
   public void button7_ActionPerformed(ActionEvent evt) {
     anleitung.show();
  }
  // Ende Methoden

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

Button7 soll dann den Frame der Klasse öffnen die ich oben gepostet habe ;)
 

Blakh

Bekanntes Mitglied
Und wenn du das so machst, solltest du das Singleton-Pattern verwenden, damit man nicht 100 Fenster gleichzeitig mit dem Button öffnen kann.

Singleton Pattern in Java

Gibt auch andere Möglichkeiten z.b. alles andere solang deaktivieren oder andere Dinge, damit man den Button nicht mehr drücken kann.
 

jgh

Top Contributor
Java:
public void button7_ActionPerformed(ActionEvent evt) {
     new Anleitung("Anleitung");
  }

so öffnet er den Frame, habe ich oben schon geschrieben...na da hast du dir aber was schönes zusammengeklaut^^
 

Blakh

Bekanntes Mitglied
OHJE!

1. Verwende anstatt awt-Komponenten die entsprechenden Swing-Komponenten! JFrame, JLabel etc. Man sollte Swing und awt nicht vermischen.

2. die paint() - Methode sollte nicht überschrieben werden. Dafür ist paintComponent() da.

3.
Java:
  anleitung = new Anleitung();
  private Anleitung anleitung;

Da sollte deine IDE doch meckern ?! Wieso lässt sich das überhaup ausführen?!

Java:
private Anleitung anleitung = new Anleitung();

4. Ein Rat: Gib deinen Komponenten/Variablen vielsprechende Namen. Das erleichtert das Leben!

5. die .show() Methode ist Deprecated : D.h. die Methode ist veraltet und sollte nicht mehr verwendet werden! Implementiere dir eine Methode in deiner Anleitungs-Klasse z.B. open() welche setVisible(true), setSelected(true) etc. macht. Bin aber der Meinung ein einfacher Aufruf von new Anleitung() in Verbindung mit dem Singleton-Pattern oder Ähnlichem ist besser.

gruss
 

Rave

Bekanntes Mitglied
OHJE!

1. Verwende anstatt awt-Komponenten die entsprechenden Swing-Komponenten! JFrame, JLabel etc. Man sollte Swing und awt nicht vermischen.

2. die paint() - Methode sollte nicht überschrieben werden. Dafür ist paintComponent() da.

3.
Java:
  anleitung = new Anleitung();
  private Anleitung anleitung;

Da sollte deine IDE doch meckern ?! Wieso lässt sich das überhaup ausführen?!

Java:
private Anleitung anleitung = new Anleitung();

4. Ein Rat: Gib deinen Komponenten/Variablen vielsprechende Namen. Das erleichtert das Leben!

5. die .show() Methode ist Deprecated : D.h. die Methode ist veraltet und sollte nicht mehr verwendet werden! Implementiere dir eine Methode in deiner Anleitungs-Klasse z.B. open() welche setVisible(true), setSelected(true) etc. macht. Bin aber der Meinung ein einfacher Aufruf von new Anleitung() in Verbindung mit dem Singleton-Pattern oder Ähnlichem ist besser.

gruss

1. swing hab ich nicht benutzt...ist auch aus den Imports nun weg ;)

2. Überfordert mich grade leicht ? Meinst du das ich nicht Repaint() benutzen soll?

3.Nun:
Java:
import java.awt.*;
import java.awt.event.*;


public class Funktionsplotter extends Frame {
  // Anfang Attribute
  boolean draw = false;
  float f,j,h,p1,p2,p3,p4,p5;
  float zoom = 1;
  //Textfelder
  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 TextField textField6 = new TextField();
  //Label
  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 Label label7 = new Label();
  private Label label8 = new Label();
  private Label label9 = new Label();
  private Label label10 = new Label();
  //Buttons
  private Button button1 = new Button();
  private Button button2 = new Button();
  private Button button3 = new Button();
  private Button button4 = new Button();
  private Button button5 = new Button();
  private Button button6 = new Button();
  private Button button7 = new Button();
  //Text Area
  private TextArea tabelle = new TextArea("", 1, 1, TextArea.SCROLLBARS_BOTH);
  //Anleitung
  private Anleitung anleitung = new Anleitung();
  // Ende Attribute

  public Funktionsplotter(String title) {
    // Frame-Initialisierung
    super(title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent evt) { System.exit(0); }
    });
    int frameWidth = 1000;
    int frameHeight = 800;
    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);
    this.setLayout(null);
    this.setBackground(Color.lightGray);
    //Panel anlegen
    Panel cp = new Panel(null);
    add(cp);
    cp.setBounds(700,0,300,700);
    cp.setBackground(Color.gray);
    Panel cp2 = new Panel(null);
    add(cp2);
    cp2.setBounds(0,700,1000,100);
    cp2.setBackground(Color.gray);
    // Anfang Komponenten
    //Textfield
    textField1.setBounds(64, 87, 30, 24);
    textField1.setText("0");
    cp.add(textField1);
    textField2.setBounds(51, 59, 28, 24);
    textField2.setText("0");
    cp.add(textField2);
    textField3.setBounds(116, 60, 28, 24);
    textField3.setText("0");
    cp.add(textField3);
    textField4.setBounds(138, 88, 30, 24);
    textField4.setText("0");
    cp.add(textField4);
    textField5.setBounds(197, 89, 25, 24);
    textField5.setText("0");
    cp.add(textField5);
    textField6.setBounds(170, 625, 33, 24);
    textField6.setText("1");
    cp.add(textField6);
    //Label
    label1.setBounds(27, 60, 24, 24);
    label1.setText("f(x)=");
    label1.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label1);
    label2.setBounds(83, 61, 32, 16);
    label2.setText("x^4+");
    label2.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label2);
    label3.setBounds(147, 63, 20, 16);
    label3.setText("x^3");
    label3.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label3);
    label4.setBounds(100, 92, 33, 16);
    label4.setText("x^2 +");
    label4.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label4);
    label5.setBounds(172, 92, 24, 16);
    label5.setText("x +");
    label5.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label5);
    label6.setBounds(46, 91, 14, 16);
    label6.setText("+");
    label6.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label6);
    label7.setBounds(29, 190, 214, 16);
    label7.setText("HINWEISE!");
    label7.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label7);
    label9.setBounds(29, 210, 214, 16);
    label9.setText("Jedes Feld benötigt eine Eingabe!");
    label9.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label9);

    //Überschrift
    label10.setBounds(29, 25, 214, 16);
    label10.setText("Funktionsplotter 1.1");
    label10.setFont(new Font("MS Sans Serif", Font.PLAIN, 18));
    cp.add(label10);

    //Text
    label8.setBounds(152, 600, 68, 16);
    label8.setText("Zoomfaktor");
    label8.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(label8);

    //Buttons
    button1.setBounds(24, 135, 97, 33);
    button1.setLabel("Zeichne");
    button1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button1_ActionPerformed(evt);
      }
    });
    cp.add(button1);
    button2.setBounds(24, 590, 121, 41);
    button2.setLabel("Reinzoomen");
    button2.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button2_ActionPerformed(evt);
      }
    });
    cp.add(button2);
    button3.setBounds(24, 640, 121, 41);
    button3.setLabel("Rauszoomen");
    button3.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button3_ActionPerformed(evt);
      }
    });
    cp.add(button3);
    button4.setBounds(224, 595, 57, 89);
    button4.setLabel("Zoomen");
    button4.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button4_ActionPerformed(evt);
      }
    });
    cp.add(button4);
    button5.setBounds(136, 136, 89, 33);
    button5.setLabel("Ableitung");
    button5.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button5_ActionPerformed(evt);
      }
    });
    cp.add(button5);
    
    button6.setBounds(25, 50, 89, 33);
    button6.setLabel("Schliessen");
    button6.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button6_ActionPerformed(evt);
      }
    });
    cp2.add(button6);
    
    button7.setBounds(100, 50, 89, 33);
    button7.setLabel("Anleitung");
    button7.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        button7_ActionPerformed(evt);
      }
    });
    cp2.add(button7);

    //Wertetabelle
    tabelle.setText("");
    tabelle.setEditable(false);
    tabelle.setBounds(25, 250, 240, 300);
    cp.add(tabelle);

    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }
  
  public float pot (float x,float ex)  //Potenzieren
  {
    float y =1;
    for (float i = 0; i< ex; i++)
    {
      y = y*x;
    }
    return y;
  }
  
  public float func (float x)
  {
    float y = p1
    *pot(x,4)+p2
    *pot(x,3)+p3
    *pot(x,2)+p4
    *x+p5;
    return y;
  }

  //Ableitung bilden
  public void Abl ()
  {
    float koef4, koef3, koef2, koef1;
    koef4=Float.valueOf(textField2.getText());
    koef3=Float.valueOf(textField3.getText());
    koef2=Float.valueOf(textField1.getText());
    koef1=Float.valueOf(textField4.getText());
    textField2.setText(""+0.0);
    textField3.setText(""+(koef4*4));
    textField1.setText(""+(koef3*3));
    textField4.setText(""+(koef2*2));
    textField5.setText(""+koef1);
  }
  
  public void paint (Graphics g)
  {
    //Nullpunkt bei: 350|350
    g.drawLine(0,350,700,350);
    g.drawLine(350,0,350,700);
    g.setColor(Color.red);
    tabelle.setText("Wertetabelle"+"\n");
    if(draw == true)
    {
      p1 = Float.valueOf(textField2.getText());  //Koeffizienten werden aus den Textfeldern gelesen
      p2 = Float.valueOf(textField3.getText());
      p3 = Float.valueOf(textField1.getText());
      p4 = Float.valueOf(textField4.getText());
      p5 = Float.valueOf(textField5.getText());
      for (float i = -350; i<350; i=i+zoom) //x-Werte von -350 bis 350 werden durchgegangen
      {
        f = func(i); //Funktionswert zum momentanen X-Wert wird gebildet
        j = i+zoom;
        h = func(j);
        int x1,x2,y1,y2;
        x1=(int)(i/zoom);
        x2=(int)(j/zoom);
        y1=(int)(f/zoom);
        y2=(int)(h/zoom);
        g.drawLine(350+x1,350 - y1,350+x2,350 - y2);
        // Wertetabelle
        tabelle.setText(tabelle.getText()+" X= "+i+"                   "+" Y= "+f+"\n");
      }
    }
  }

  // Anfang Methoden
  public void button1_ActionPerformed(ActionEvent evt) {
    // ZEICHNEN
    draw = true; //Funktionsplotter soll gezeichnet werden
    repaint();
  }

  public void button2_ActionPerformed(ActionEvent evt) {
    // REINZOOMEN
    zoom=zoom/2;
    textField6.setText(""+(1/zoom));
    repaint();
  }

  public void button3_ActionPerformed(ActionEvent evt) {
    // RAUSZOOMEN
    zoom=zoom*2;
    textField6.setText(""+(1/zoom));
    repaint();
  }

  public void button4_ActionPerformed(ActionEvent evt) {
    // ZOOM aus Textfenster
    zoom=1/Float.valueOf(textField6.getText());
    repaint();
  }

  public void button5_ActionPerformed(ActionEvent evt) {
    // ABLEITUNG ZEICHNEN
    Abl(); //Ableitung wird gebildet
    draw = true; //Funktionsplotter soll gezeichnet werden
    repaint();
  }

  public void button6_ActionPerformed(ActionEvent evt) {
    dispose();
  }
  
   public void button7_ActionPerformed(ActionEvent evt) {
     anleitung.setVisible(true);
  }
  // Ende Methoden

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

4. Wird gemacht ;)

5. habs nun erstmal mit setVisible() gemacht ;)


Nun allerdings dieser Fehler:

Compiliere C:\Users\Kiri\Downloads\Funktionsplotter\Funktionsplotter.java mit Java-Compiler
Funktionsplotter.java:47:33: cannot find symbol
symbol : constructor Anleitung()
location: class Anleitung
private Anleitung anleitung = new Anleitung();
^
1 error
 

Blakh

Bekanntes Mitglied
schnell geantwortet... hab meinen beitrag editiert :)

Und wenn du öftert Java programmierst: verwende zur Entwicklung eine IDE wie eclipse oder netbeans. Das hat 1001 Vorteile.
 
Zuletzt bearbeitet:

Rave

Bekanntes Mitglied
Edit: Alles klar :D war zu einfach das ich nich gleich drauf gekommen bin :D ^^ Habs nun =) danke für die schnelle Hilfe !!!
 
Zuletzt bearbeitet:

Blakh

Bekanntes Mitglied
Es gibt den Konstruktor public Anleitung() nicht, sonder nur public Anleitung(String title). Weißt du wann der Konstruktor gebraucht wird?
 

Rave

Bekanntes Mitglied
Es gibt den Konstruktor public Anleitung() nicht, sonder nur public Anleitung(String title). Weißt du wann der Konstruktor gebraucht wird?

Immer bevor eine Klasse ausgeführt wird wenn ich das richtig in Erinnerung habe =)

Problerm hatte ich dann übrgends gelöst ;) siehe mein Post vor deinen =)

Danke =)
 

Rave

Bekanntes Mitglied
Noch so ne Kleinigkeit am Rande :D

Wie kann ich das über mehrer Zeilen schreiben?

Java:
ta.setText("Anleitung zum Funktionsplotter 1.1\n\nAlle Textfelder müssen ausgefüllt sein!\nZoomfaktor kann variabel eingegeben werden!");

Ist nur Kosmetik im Code aber es nervt mich :D
 

jgh

Top Contributor
Java:
ta.setText("Anleitung zum Funktionsplotter 1.1"+
"\n\nAlle Textfelder müssen ausgefüllt sein!"+
"\nZoomfaktor kann variabel eingegeben werden!");
 

jgh

Top Contributor
welcome anytime.

sicherlich nicht für meinen beitrag...aber grundsätzlich gibt es einen button:
post_thanks.gif


und benutz eine ide...mit der kombi strg+shift+F formatiert diese dir den quellcode sauber und anständig ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Button soll sowohl auf Klicken als auch auf die Enter-Taste reagieren Java Basics - Anfänger-Themen 9
C Ein Button soll Focus rausfinden und Methode starten Java Basics - Anfänger-Themen 9
R Button soll Wert 1 in Variable schreiben Java Basics - Anfänger-Themen 4
J Button der mehrere Methoden ausführen soll Java Basics - Anfänger-Themen 11
G Button soll Speicher Dialog aufrufen Java Basics - Anfänger-Themen 10
G HTML Button soll MainKlasse ausführen Java Basics - Anfänger-Themen 4
A Fenster schließen soll Button kontakt auslösen. Java Basics - Anfänger-Themen 12
T per Button soll inhalt aus Tecxfield in Label übertragen wer Java Basics - Anfänger-Themen 5
Z Button soll button erzeugen Java Basics - Anfänger-Themen 18
K Button soll neue InputBox erstellen... Java Basics - Anfänger-Themen 10
Maxq Klassen Actionen in Button implementieren Java Basics - Anfänger-Themen 6
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
JavaBeginner22 Button Text verändern Java Basics - Anfänger-Themen 1
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
B Zurück Button erstellen Java Basics - Anfänger-Themen 1
Tom/S Button info Java Basics - Anfänger-Themen 2
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
T JSP, Button-Color change. Java Basics - Anfänger-Themen 1
L hilfe run button funktioniert nicht Java Basics - Anfänger-Themen 13
S Erste Schritte Button einen Wert zuweisen & diesen ausgeben Java Basics - Anfänger-Themen 2
S Counter Label Button Java Basics - Anfänger-Themen 4
J Button über Pfeiltasten bewegen Java Basics - Anfänger-Themen 8
J Button als Feld nutzen Java Basics - Anfänger-Themen 17
A JOPtionPaneOptionDialog Abfrage welcher Button gedrückt wurde? Java Basics - Anfänger-Themen 8
J JavaFX Label,Button zur Laufzeit Java Basics - Anfänger-Themen 30
S Klassenaufruf über JFrame Button Java Basics - Anfänger-Themen 3
G JTextField per Button speichern und an andere Klasse übergeben Java Basics - Anfänger-Themen 2
J Spiel mit Button klick starten Java Basics - Anfänger-Themen 9
X TextField-Inhalt mit Button in .txt-Datei speichern Java Basics - Anfänger-Themen 16
J Button klick bei eine bestimmten Zahl Java Basics - Anfänger-Themen 8
S JFrame mit Hintergrundbild und Button Java Basics - Anfänger-Themen 4
P Upload Button funktioniert nicht Java Basics - Anfänger-Themen 13
I Ordnung JLayeredPane mit Button ändern Java Basics - Anfänger-Themen 5
A JLabel mit button drücken verändern Java Basics - Anfänger-Themen 6
H Swing Button hat falsche Größe Java Basics - Anfänger-Themen 5
CptK mit javafx button erstellen Java Basics - Anfänger-Themen 1
AppGuruCode962 Button mit Textfield verbinden Java Basics - Anfänger-Themen 13
L Java gui reset button Fehler!? Java Basics - Anfänger-Themen 2
L Java reset button Problem Java Basics - Anfänger-Themen 3
L Java reset button Problem Java Basics - Anfänger-Themen 9
L Erste Schritte AndroidStudio Button - Nur Großbuchstaben Java Basics - Anfänger-Themen 2
V JAVA Button Java Basics - Anfänger-Themen 4
M Listener für Button - Wert von Variablen verändern Java Basics - Anfänger-Themen 14
S OOP Button erst nach 2x klicken deaktivieren Java Basics - Anfänger-Themen 4
J Button in anderer Klasse ändern Java Basics - Anfänger-Themen 3
A Fenster mit Button aufrufen Java Basics - Anfänger-Themen 3
V Button/Event wird nicht ausgeführt, was tun? Java Basics - Anfänger-Themen 2
J Bild in Button einsetzen Java Basics - Anfänger-Themen 6
S button kommt durch bild Java Basics - Anfänger-Themen 13
I GUI Button Postition festlegen Java Basics - Anfänger-Themen 4
Tacofan Welcher Button wurde zuerst gedrückt? Java Basics - Anfänger-Themen 4
K Interface Fenster mit 3 ComboBoxen und 1 Button Java Basics - Anfänger-Themen 13
J Best Practice Button isPressed o.ä. auswerten Java Basics - Anfänger-Themen 10
S zahl hoch und runter zählen per button Java Basics - Anfänger-Themen 25
G Email-sending Button Java Basics - Anfänger-Themen 9
K Input/Output JCheckBox mit Bestätigungs-Button Java Basics - Anfänger-Themen 22
A Nach Druck eines Buttons reagieren andere Button nicht Java Basics - Anfänger-Themen 3
P Auf Button-Klick außerhalb der GUI-Klasse reagieren Java Basics - Anfänger-Themen 10
S mit Java HTML Button drücken "lassen" Java Basics - Anfänger-Themen 8
GadgetSofa jComboBox mit dem Button verbinden. Aber wie?? Java Basics - Anfänger-Themen 4
D Zurück Button -- Background wird nicht angezeigt Java Basics - Anfänger-Themen 4
S Button "Berechnen" geht nicht Java Basics - Anfänger-Themen 3
H Text in einen Button quetschen Java Basics - Anfänger-Themen 3
S Input/Output In Java Swing auf Button warten? Java Basics - Anfänger-Themen 9
B Home Button ausbleden ? Java Basics - Anfänger-Themen 8
M JMenuItem per Button hinzufügen Java Basics - Anfänger-Themen 2
T Eclipse kennt mein Button nicht... Java Basics - Anfänger-Themen 5
Chava Testprojekt.Text.Image.Button Java Basics - Anfänger-Themen 4
G Button Event Java Basics - Anfänger-Themen 6
S Methode pausieren bis Button gedrückt wird Java Basics - Anfänger-Themen 5
K Button's mit versch. Aufgaben/ActionListener Java Basics - Anfänger-Themen 12
J Button erstellen mit for-Schleife Java Basics - Anfänger-Themen 10
llabusch Fenster per Button verschieben Java Basics - Anfänger-Themen 5
J Button wird nicht angezeigt (GUI) Java Basics - Anfänger-Themen 7
I Button abfragen ob er geklickt wurde Java Basics - Anfänger-Themen 4
S Eigenen Listener zu eigenen Button! Java Basics - Anfänger-Themen 5
P Aktion ausführen wenn Button geklickt wird Java Basics - Anfänger-Themen 7
M Button mit Bild und Text Java Basics - Anfänger-Themen 2
N Mehrere berechnungen auf einem Button legen? Java Basics - Anfänger-Themen 19
T aktivieren und deaktivieren von Radio Button Java Basics - Anfänger-Themen 2
K Compiler-Fehler Button cannot be resolved or is not a field Java Basics - Anfänger-Themen 6
G Button Prototyp erstellen Java Basics - Anfänger-Themen 5
A Erkennung eines Button im aktiven Fenster Java Basics - Anfänger-Themen 2
P JTabel größe ändern und button anzeigen Java Basics - Anfänger-Themen 5
T Button Text mit Action Listener [Hilfe!] Java Basics - Anfänger-Themen 10
V Robot kann Button nicht drücken warum? Java Basics - Anfänger-Themen 6
D Durch Button klick wert in JTextField einfügen Java Basics - Anfänger-Themen 5
C GUI - SWT - Button-Fehlermeldung Java Basics - Anfänger-Themen 5
A Button-Actions Java Basics - Anfänger-Themen 4
C Android APP - Load More Button und beschleunigung... Java Basics - Anfänger-Themen 2
J Klick auf Button -> JFrame öffnet sich erneut. & Datei lässt sich nicht löschen Java Basics - Anfänger-Themen 7
J Button in extra Klasse festlegen und in anderer Klasse einfügen? Java Basics - Anfänger-Themen 3
J Schleife verzögern mit Button Java Basics - Anfänger-Themen 14
J GUI Button Klasse in anderer Klasse einfügen Java Basics - Anfänger-Themen 3
A Button in eine bestimmte Spalte platzieren Java Basics - Anfänger-Themen 4
Bluedaishi Klassen Thread über if Anweisung starten und von anderer Klassen über Button Beenden Java Basics - Anfänger-Themen 34
N CaretListener: leere Textfelder = Button sperren Java Basics - Anfänger-Themen 11
F Neues Panel und Button unsichtbar Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben