Hallo Forum,
Was muss ich ändern, damit ich pnZeichenflaeche.setChart aus der tfRundenActionPerformed Methode aufrufen kann?
Gruß
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ß