Methodenaufruf aus anderer Klasse

Lennardt

Mitglied
Hallo Forum,

Java:
import java.util.Random;
import java.awt.*;
import javax.swing.JPanel;

public class Wuerfel extends javax.swing.JApplet {

    /** Initializes the applet Wuerfel */
  @Override
    public void init() {
        try {
            java.awt.EventQueue.invokeAndWait(new Runnable() {
                public void run() {
                    initComponents();
                }
            });
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    /** This method is called from within the init() method to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
  // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
  private void initComponents() {

    tfRunden = new javax.swing.JTextField();
    lbRunden = new javax.swing.JLabel();
    lbAuge1 = new javax.swing.JLabel();
    lbAuge2 = new javax.swing.JLabel();
    lbAuge3 = new javax.swing.JLabel();
    lbAuge4 = new javax.swing.JLabel();
    lbAuge5 = new javax.swing.JLabel();
    lbAuge6 = new javax.swing.JLabel();
    lbAnzahl1 = new javax.swing.JLabel();
    lbAnzahl2 = new javax.swing.JLabel();
    lbAnzahl3 = new javax.swing.JLabel();
    lbAnzahl4 = new javax.swing.JLabel();
    lbAnzahl5 = new javax.swing.JLabel();
    lbAnzahl6 = new javax.swing.JLabel();
    lbProzent5 = new javax.swing.JLabel();
    lbProzent4 = new javax.swing.JLabel();
    lbProzent2 = new javax.swing.JLabel();
    lbProzent1 = new javax.swing.JLabel();
    lbProzent6 = new javax.swing.JLabel();
    lbProzent3 = new javax.swing.JLabel();
    pnZeichenflaeche = new Zeichenflaeche();

    getContentPane().setLayout(null);

    tfRunden.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
        tfRundenActionPerformed(evt);
      }
    });
    getContentPane().add(tfRunden);
    tfRunden.setBounds(230, 30, 182, 20);

    lbRunden.setText("Wie oft soll gewürfelt werden?");
    getContentPane().add(lbRunden);
    lbRunden.setBounds(30, 30, 190, 14);

    lbAuge1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAuge1.setText("1");
    lbAuge1.setEnabled(false);
    lbAuge1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAuge1);
    lbAuge1.setBounds(70, 90, 43, 14);

    lbAuge2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAuge2.setText("2");
    lbAuge2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAuge2);
    lbAuge2.setBounds(120, 90, 43, 14);

    lbAuge3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAuge3.setText("3");
    lbAuge3.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAuge3);
    lbAuge3.setBounds(170, 90, 43, 14);

    lbAuge4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAuge4.setText("4");
    lbAuge4.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAuge4);
    lbAuge4.setBounds(220, 90, 43, 14);

    lbAuge5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAuge5.setText("5");
    lbAuge5.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAuge5);
    lbAuge5.setBounds(270, 90, 43, 14);

    lbAuge6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAuge6.setText("6");
    lbAuge6.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAuge6);
    lbAuge6.setBounds(320, 90, 43, 14);

    lbAnzahl1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAnzahl1.setText("0");
    lbAnzahl1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAnzahl1);
    lbAnzahl1.setBounds(70, 120, 43, 14);

    lbAnzahl2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAnzahl2.setText("0");
    lbAnzahl2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAnzahl2);
    lbAnzahl2.setBounds(120, 120, 43, 14);

    lbAnzahl3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAnzahl3.setText("0");
    lbAnzahl3.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAnzahl3);
    lbAnzahl3.setBounds(170, 120, 43, 14);

    lbAnzahl4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAnzahl4.setText("0");
    lbAnzahl4.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAnzahl4);
    lbAnzahl4.setBounds(220, 120, 43, 14);

    lbAnzahl5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAnzahl5.setText("0");
    lbAnzahl5.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAnzahl5);
    lbAnzahl5.setBounds(270, 120, 43, 14);

    lbAnzahl6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAnzahl6.setText("0");
    lbAnzahl6.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAnzahl6);
    lbAnzahl6.setBounds(320, 120, 43, 14);

    lbProzent5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbProzent5.setText("0%");
    lbProzent5.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbProzent5);
    lbProzent5.setBounds(270, 150, 43, 14);

    lbProzent4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbProzent4.setText("0%");
    lbProzent4.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbProzent4);
    lbProzent4.setBounds(220, 150, 43, 14);

    lbProzent2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbProzent2.setText("0%");
    lbProzent2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbProzent2);
    lbProzent2.setBounds(120, 150, 43, 14);

    lbProzent1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbProzent1.setText("0%");
    lbProzent1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbProzent1);
    lbProzent1.setBounds(70, 150, 43, 14);

    lbProzent6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbProzent6.setText("0%");
    lbProzent6.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbProzent6);
    lbProzent6.setBounds(320, 150, 43, 14);

    lbProzent3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbProzent3.setText("0%");
    lbProzent3.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbProzent3);
    lbProzent3.setBounds(170, 150, 43, 14);
    getContentPane().add(pnZeichenflaeche);
    pnZeichenflaeche.setBounds(20, 180, 390, 110);
  }// </editor-fold>                        

    private void tfRundenActionPerformed(java.awt.event.ActionEvent evt) {                                         
      int runden = Integer.valueOf(tfRunden.getText());
      int[] ergebnis = new int[runden];
      Random zufall = new Random();

      // Array ergebnis[] mit Zufallszahlen füllen
      for(int i = 0; i < runden; i++) {
        ergebnis[i] = zufall.nextInt(6) + 1;
      }

      // Labels leeren, falls noch Werte von einem Durchlauf drin sind
      lbAnzahl1.setText("0");
      lbAnzahl2.setText("0");
      lbAnzahl3.setText("0");
      lbAnzahl4.setText("0");
      lbAnzahl5.setText("0");
      lbAnzahl6.setText("0");

      // Je Element des Arrays überprüfen welche Augenzahl gewürfelt wurde
      // und zu dem Wert des entsprechenden Labels addieren
      for(int i = 0; i < runden; i++) {
        switch(ergebnis[i]) {
          case 1:
            lbAnzahl1.setText(String.valueOf(Integer.valueOf(lbAnzahl1.getText()) + 1));
            break;
          case 2:
            lbAnzahl2.setText(String.valueOf(Integer.valueOf(lbAnzahl2.getText()) + 1));
            break;
          case 3:
            lbAnzahl3.setText(String.valueOf(Integer.valueOf(lbAnzahl3.getText()) + 1));
            break;
          case 4:
            lbAnzahl4.setText(String.valueOf(Integer.valueOf(lbAnzahl4.getText()) + 1));
            break;
          case 5:
            lbAnzahl5.setText(String.valueOf(Integer.valueOf(lbAnzahl5.getText()) + 1));
            break;
          case 6:
            lbAnzahl6.setText(String.valueOf(Integer.valueOf(lbAnzahl6.getText()) + 1));
          break;
        }
      }

      // Prozentzahlen ausrechnen
      int[] werteAugen = new int[6];
      werteAugen[0] = Integer.valueOf(lbAnzahl1.getText());
      werteAugen[1] = Integer.valueOf(lbAnzahl2.getText());
      werteAugen[2] = Integer.valueOf(lbAnzahl3.getText());
      werteAugen[3] = Integer.valueOf(lbAnzahl4.getText());
      werteAugen[4] = Integer.valueOf(lbAnzahl5.getText());
      werteAugen[5] = Integer.valueOf(lbAnzahl6.getText());

      double[] werteProzent = new double[6];
      for(int i = 0; i < 6; i++) {
        werteProzent[i] = (double) werteAugen[i] / runden * 100;
      }

      // Prozentwerte ins Label schreiben
      lbProzent1.setText(String.valueOf(Math.round(werteProzent[0] * 100) / 100.0 + "%"));
      lbProzent2.setText(String.valueOf(Math.round(werteProzent[1] * 100) / 100.0 + "%"));
      lbProzent3.setText(String.valueOf(Math.round(werteProzent[2] * 100) / 100.0 + "%"));
      lbProzent4.setText(String.valueOf(Math.round(werteProzent[3] * 100) / 100.0 + "%"));
      lbProzent5.setText(String.valueOf(Math.round(werteProzent[4] * 100) / 100.0 + "%"));
      lbProzent6.setText(String.valueOf(Math.round(werteProzent[5] * 100) / 100.0 + "%"));
    }                                        

  // Variables declaration - do not modify                     
  private javax.swing.JLabel lbAnzahl1;
  private javax.swing.JLabel lbAnzahl2;
  private javax.swing.JLabel lbAnzahl3;
  private javax.swing.JLabel lbAnzahl4;
  private javax.swing.JLabel lbAnzahl5;
  private javax.swing.JLabel lbAnzahl6;
  private javax.swing.JLabel lbAuge1;
  private javax.swing.JLabel lbAuge2;
  private javax.swing.JLabel lbAuge3;
  private javax.swing.JLabel lbAuge4;
  private javax.swing.JLabel lbAuge5;
  private javax.swing.JLabel lbAuge6;
  private javax.swing.JLabel lbProzent1;
  private javax.swing.JLabel lbProzent2;
  private javax.swing.JLabel lbProzent3;
  private javax.swing.JLabel lbProzent4;
  private javax.swing.JLabel lbProzent5;
  private javax.swing.JLabel lbProzent6;
  private javax.swing.JLabel lbRunden;
  public javax.swing.JPanel pnZeichenflaeche;
  private javax.swing.JTextField tfRunden;
  // End of variables declaration                   

}

class Zeichenflaeche extends JPanel {
  boolean paint = true;
  
  @Override
  public void paintComponent(Graphics g) {
    super.paintComponent(g);
    if(paint) {
      // Rahmen um den Zeichenbereich
      g.drawLine(0, 0, 390, 0);
      g.drawLine(0, 109, 390, 109);
      g.drawLine(0, 0, 0, 109);
      g.drawLine(389, 0, 389, 109);
    }
  }

  public void setPaint(boolean p) {
    this.paint = p;
  }

  public void setChart(double[] d) {


    this.setPaint(true);
    this.repaint();
  }
  
}

Was muss ich ändern, damit ich pnZeichenflaeche.setChart aus der tfRundenActionPerformed Methode aufrufen kann?

Gruß
 
Java:
  public javax.swing.JPanel pnZeichenflaeche;

das pnZeichenflaeche ist eine Instanz der Klasse JPanel.

Versuch es mal damit:

Java:
 public Zeichenflaeche  pnZeichenflaeche;
 
Vielen Dank, das Problem wäre gelöst!

Nun habe ich ein Neues. Ich habe versucht Balken für mein Diagramm zu zeichnen, jedoch bleibt jetzt das Applet weiß.

Java:
import java.util.Random;
import java.awt.*;
import javax.swing.JPanel;

public class Wuerfel extends javax.swing.JApplet {

    /** Initializes the applet Wuerfel */
  @Override
    public void init() {
        try {
            java.awt.EventQueue.invokeAndWait(new Runnable() {
                public void run() {
                    initComponents();
                }
            });
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    /** This method is called from within the init() method to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
  // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
  private void initComponents() {

    tfRunden = new javax.swing.JTextField();
    lbRunden = new javax.swing.JLabel();
    lbAuge1 = new javax.swing.JLabel();
    lbAuge2 = new javax.swing.JLabel();
    lbAuge3 = new javax.swing.JLabel();
    lbAuge4 = new javax.swing.JLabel();
    lbAuge5 = new javax.swing.JLabel();
    lbAuge6 = new javax.swing.JLabel();
    lbAnzahl1 = new javax.swing.JLabel();
    lbAnzahl2 = new javax.swing.JLabel();
    lbAnzahl3 = new javax.swing.JLabel();
    lbAnzahl4 = new javax.swing.JLabel();
    lbAnzahl5 = new javax.swing.JLabel();
    lbAnzahl6 = new javax.swing.JLabel();
    lbProzent5 = new javax.swing.JLabel();
    lbProzent4 = new javax.swing.JLabel();
    lbProzent2 = new javax.swing.JLabel();
    lbProzent1 = new javax.swing.JLabel();
    lbProzent6 = new javax.swing.JLabel();
    lbProzent3 = new javax.swing.JLabel();
    pnZeichenflaeche = new Zeichenflaeche();

    getContentPane().setLayout(null);

    tfRunden.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
        tfRundenActionPerformed(evt);
      }
    });
    getContentPane().add(tfRunden);
    tfRunden.setBounds(230, 30, 182, 20);

    lbRunden.setText("Wie oft soll gewürfelt werden?");
    getContentPane().add(lbRunden);
    lbRunden.setBounds(30, 30, 190, 14);

    lbAuge1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAuge1.setText("1");
    lbAuge1.setEnabled(false);
    lbAuge1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAuge1);
    lbAuge1.setBounds(70, 90, 43, 14);

    lbAuge2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAuge2.setText("2");
    lbAuge2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAuge2);
    lbAuge2.setBounds(120, 90, 43, 14);

    lbAuge3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAuge3.setText("3");
    lbAuge3.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAuge3);
    lbAuge3.setBounds(170, 90, 43, 14);

    lbAuge4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAuge4.setText("4");
    lbAuge4.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAuge4);
    lbAuge4.setBounds(220, 90, 43, 14);

    lbAuge5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAuge5.setText("5");
    lbAuge5.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAuge5);
    lbAuge5.setBounds(270, 90, 43, 14);

    lbAuge6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAuge6.setText("6");
    lbAuge6.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAuge6);
    lbAuge6.setBounds(320, 90, 43, 14);

    lbAnzahl1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAnzahl1.setText("0");
    lbAnzahl1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAnzahl1);
    lbAnzahl1.setBounds(70, 120, 43, 14);

    lbAnzahl2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAnzahl2.setText("0");
    lbAnzahl2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAnzahl2);
    lbAnzahl2.setBounds(120, 120, 43, 14);

    lbAnzahl3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAnzahl3.setText("0");
    lbAnzahl3.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAnzahl3);
    lbAnzahl3.setBounds(170, 120, 43, 14);

    lbAnzahl4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAnzahl4.setText("0");
    lbAnzahl4.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAnzahl4);
    lbAnzahl4.setBounds(220, 120, 43, 14);

    lbAnzahl5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAnzahl5.setText("0");
    lbAnzahl5.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAnzahl5);
    lbAnzahl5.setBounds(270, 120, 43, 14);

    lbAnzahl6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbAnzahl6.setText("0");
    lbAnzahl6.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbAnzahl6);
    lbAnzahl6.setBounds(320, 120, 43, 14);

    lbProzent5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbProzent5.setText("0%");
    lbProzent5.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbProzent5);
    lbProzent5.setBounds(270, 150, 43, 14);

    lbProzent4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbProzent4.setText("0%");
    lbProzent4.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbProzent4);
    lbProzent4.setBounds(220, 150, 43, 14);

    lbProzent2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbProzent2.setText("0%");
    lbProzent2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbProzent2);
    lbProzent2.setBounds(120, 150, 43, 14);

    lbProzent1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbProzent1.setText("0%");
    lbProzent1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbProzent1);
    lbProzent1.setBounds(70, 150, 43, 14);

    lbProzent6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbProzent6.setText("0%");
    lbProzent6.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbProzent6);
    lbProzent6.setBounds(320, 150, 43, 14);

    lbProzent3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    lbProzent3.setText("0%");
    lbProzent3.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    getContentPane().add(lbProzent3);
    lbProzent3.setBounds(170, 150, 43, 14);
    getContentPane().add(pnZeichenflaeche);
    pnZeichenflaeche.setBounds(20, 180, 390, 110);
  }// </editor-fold>                        

    private void tfRundenActionPerformed(java.awt.event.ActionEvent evt) {                                         
      int runden = Integer.valueOf(tfRunden.getText());
      int[] ergebnis = new int[runden];
      Random zufall = new Random();

      // Array ergebnis[] mit Zufallszahlen füllen
      for(int i = 0; i < runden; i++) {
        ergebnis[i] = zufall.nextInt(6) + 1;
      }

      // Labels leeren, falls noch Werte von einem Durchlauf drin sind
      lbAnzahl1.setText("0");
      lbAnzahl2.setText("0");
      lbAnzahl3.setText("0");
      lbAnzahl4.setText("0");
      lbAnzahl5.setText("0");
      lbAnzahl6.setText("0");

      // Je Element des Arrays überprüfen welche Augenzahl gewürfelt wurde
      // und zu dem Wert des entsprechenden Labels addieren
      for(int i = 0; i < runden; i++) {
        switch(ergebnis[i]) {
          case 1:
            lbAnzahl1.setText(String.valueOf(Integer.valueOf(lbAnzahl1.getText()) + 1));
            break;
          case 2:
            lbAnzahl2.setText(String.valueOf(Integer.valueOf(lbAnzahl2.getText()) + 1));
            break;
          case 3:
            lbAnzahl3.setText(String.valueOf(Integer.valueOf(lbAnzahl3.getText()) + 1));
            break;
          case 4:
            lbAnzahl4.setText(String.valueOf(Integer.valueOf(lbAnzahl4.getText()) + 1));
            break;
          case 5:
            lbAnzahl5.setText(String.valueOf(Integer.valueOf(lbAnzahl5.getText()) + 1));
            break;
          case 6:
            lbAnzahl6.setText(String.valueOf(Integer.valueOf(lbAnzahl6.getText()) + 1));
          break;
        }
      }

      // Prozentzahlen ausrechnen
      int[] werteAugen = new int[6];
      werteAugen[0] = Integer.valueOf(lbAnzahl1.getText());
      werteAugen[1] = Integer.valueOf(lbAnzahl2.getText());
      werteAugen[2] = Integer.valueOf(lbAnzahl3.getText());
      werteAugen[3] = Integer.valueOf(lbAnzahl4.getText());
      werteAugen[4] = Integer.valueOf(lbAnzahl5.getText());
      werteAugen[5] = Integer.valueOf(lbAnzahl6.getText());

      double[] werteProzent = new double[6];
      for(int i = 0; i < 6; i++) {
        werteProzent[i] = (double) werteAugen[i] / runden * 100;
      }

      // Prozentwerte ins Label schreiben
      lbProzent1.setText(String.valueOf(Math.round(werteProzent[0] * 100) / 100.0 + "%"));
      lbProzent2.setText(String.valueOf(Math.round(werteProzent[1] * 100) / 100.0 + "%"));
      lbProzent3.setText(String.valueOf(Math.round(werteProzent[2] * 100) / 100.0 + "%"));
      lbProzent4.setText(String.valueOf(Math.round(werteProzent[3] * 100) / 100.0 + "%"));
      lbProzent5.setText(String.valueOf(Math.round(werteProzent[4] * 100) / 100.0 + "%"));
      lbProzent6.setText(String.valueOf(Math.round(werteProzent[5] * 100) / 100.0 + "%"));

      z.setChart(werteProzent);
    }                                        

  // Variables declaration - do not modify                     
  private javax.swing.JLabel lbAnzahl1;
  private javax.swing.JLabel lbAnzahl2;
  private javax.swing.JLabel lbAnzahl3;
  private javax.swing.JLabel lbAnzahl4;
  private javax.swing.JLabel lbAnzahl5;
  private javax.swing.JLabel lbAnzahl6;
  private javax.swing.JLabel lbAuge1;
  private javax.swing.JLabel lbAuge2;
  private javax.swing.JLabel lbAuge3;
  private javax.swing.JLabel lbAuge4;
  private javax.swing.JLabel lbAuge5;
  private javax.swing.JLabel lbAuge6;
  private javax.swing.JLabel lbProzent1;
  private javax.swing.JLabel lbProzent2;
  private javax.swing.JLabel lbProzent3;
  private javax.swing.JLabel lbProzent4;
  private javax.swing.JLabel lbProzent5;
  private javax.swing.JLabel lbProzent6;
  private javax.swing.JLabel lbRunden;
  public javax.swing.JPanel pnZeichenflaeche;
  private javax.swing.JTextField tfRunden;
  // End of variables declaration                   
public Zeichenflaeche z = (Zeichenflaeche) pnZeichenflaeche;
}

class Zeichenflaeche extends JPanel {
  boolean paint = true;
  double[] data;
  
  @Override
  public void paintComponent(Graphics g) {
    super.paintComponent(g);
    if(paint) {
      // Rahmen um den Zeichenbereich
      g.drawLine(0, 0, 390, 0);
      g.drawLine(0, 109, 390, 101);
      g.drawLine(0, 0, 0, 109);
      g.drawLine(389, 0, 389, 101);

      // Balken zeichnen
      for(int i = 0; i < 6; i++) {
        // drawLine(x-Koordinate Start, y-Koordinate Start, x-Koordinate Ende, y-Koordinate Ende)
        // drawLine(A,B,C,D)
        // A = Abstand Rahmen <-> Erster Balken + (i * Breite des Balken)
        // B = 100
        // C = wie A, nur 50px versetzt für die Breite der Balken
        // D = (neg. Maximale Länge + Prozente) mal minus Eins fürs Zeichnen
        g.drawLine(50 + (i * 65), 100, 150 + (i * 65), -1 * ( -100 + (int) data[i]));
      }
    }
  }

  public void setPaint(boolean p) {
    this.paint = p;
  }

  public void setChart(double[] d) {
    data = d;
    this.setPaint(true);
    this.repaint();
  }
  
}


Konsole sagt folgendes:

Code:
run:
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
        at Zeichenflaeche.paintComponent(Wuerfel.java:294)
        at javax.swing.JComponent.paint(JComponent.java:1029)
        at javax.swing.JComponent.paintChildren(JComponent.java:862)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at javax.swing.JComponent.paintChildren(JComponent.java:862)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
        at javax.swing.JComponent.paintChildren(JComponent.java:862)
        at javax.swing.JComponent.paintToOffscreen(JComponent.java:5131)
        at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1479)
        at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1410)
        at javax.swing.RepaintManager.paint(RepaintManager.java:1224)
        at javax.swing.JComponent.paint(JComponent.java:1015)
        at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
        at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
        at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
        at java.awt.Container.paint(Container.java:1780)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:796)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:713)
        at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:693)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:125)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        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)
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
        at Zeichenflaeche.paintComponent(Wuerfel.java:294)
        at javax.swing.JComponent.paint(JComponent.java:1029)
        at javax.swing.JComponent.paintChildren(JComponent.java:862)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at javax.swing.JComponent.paintChildren(JComponent.java:862)
        at javax.swing.JComponent.paint(JComponent.java:1038)
        at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
        at javax.swing.JComponent.paintChildren(JComponent.java:862)
        at javax.swing.JComponent.paintToOffscreen(JComponent.java:5131)
        at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1479)
        at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1410)
        at javax.swing.RepaintManager.paint(RepaintManager.java:1224)
        at javax.swing.JComponent.paint(JComponent.java:1015)
        at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
        at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
        at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
        at java.awt.Container.paint(Container.java:1780)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:796)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:713)
        at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:693)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:125)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        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)

Gruß
 
Java:
   g.drawLine(50 + (i * 65), 100, 150 + (i * 65), -1 * ( -100 + (int) data[i]));

dein
Code:
data
ist zu dem Zeitpunkt vermutlich noch [c]null[/c]. mache mal eine if-Abfrage vor die Schleife!

Und
Java:
	public javax.swing.JPanel pnZeichenflaeche;
	private javax.swing.JTextField tfRunden;
	// End of variables declaration
	public Zeichenflaeche z = (Zeichenflaeche) pnZeichenflaeche;  // <-- null

da bringt die Zuweisung deines
Code:
z
natürlich auch nichts, das wird auch null sein !
 
Vielleicht hätte ich das sagen sollen: Die Zeile
Zeichenflaeche z = (Zeichenflaeche)pnZeichenflaeche;
muss direkt vor der Zeile stehen, wo du jetzt
z.setChart(...);
machst.
 

Zurück
Oben