Last active
November 15, 2017 15:34
-
-
Save princessofpain/24cbdff25b06e585e49ef86d8db2e1d3 to your computer and use it in GitHub Desktop.
A file to type in a defined number of marks including the calculation of average, best mark, worse mark etc. The problem is to fill the array through an ActionListener of the button "btnbernehmen2".
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package gui10; | |
import java.awt.BorderLayout; | |
import java.awt.Desktop.Action; | |
import java.awt.EventQueue; | |
import javax.swing.JFrame; | |
import javax.swing.JPanel; | |
import javax.swing.border.EmptyBorder; | |
import javax.swing.JLabel; | |
import javax.swing.JTextField; | |
import javax.swing.JButton; | |
import java.awt.event.ActionListener; | |
import java.awt.event.KeyEvent; | |
import java.awt.event.KeyListener; | |
import java.util.Arrays; | |
import java.awt.event.ActionEvent; | |
import java.awt.event.KeyAdapter; | |
public class Notenbilanz extends JFrame { | |
private JButton btnbernehmen2; | |
private JLabel lblNote; | |
private JPanel contentPane; | |
private JTextField txAnzNoten; | |
private JTextField txNote; | |
private JTextField txNoBearbeiten; | |
private JTextField txNeueNote; | |
private JButton btnNeueBerechnung; | |
private JLabel lbleingegebeneNoten; | |
private JLabel lblDurchschnitt; | |
private JLabel lblBesteNote; | |
private JLabel lblSchlechteste; | |
private JLabel lblNeuerWert; | |
private JLabel lblNoten; | |
private JLabel lblNoBearbeiten; | |
private JButton btnbernehmen; | |
private JButton btnSpeichern; | |
private JButton btnOk; | |
int anzNoten, beste, schlechteste, clicked = 0, counter; | |
double durchschnitt, noteGesamt, summe, noteSchlechteste, noteBeste, note, summe2; | |
//Array deklarieren | |
double[] noten = new double[anzNoten]; | |
/** | |
* Launch the application. | |
*/ | |
public static void main(String[] args) { | |
EventQueue.invokeLater(new Runnable() { | |
public void run() { | |
try { | |
Notenbilanz frame = new Notenbilanz(); | |
frame.setVisible(true); | |
} catch (Exception e) { | |
e.printStackTrace(); | |
} | |
} | |
}); | |
} | |
/** | |
* Create the frame. | |
*/ | |
public Notenbilanz() { | |
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | |
setBounds(100, 100, 507, 362); | |
contentPane = new JPanel(); | |
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); | |
setContentPane(contentPane); | |
contentPane.setLayout(null); | |
for (int i = 0; i < noten.length ; i++){ | |
noten[i]=1; | |
} | |
JLabel lblAnzNoten = new JLabel("Anzahl Noten"); | |
lblAnzNoten.setBounds(10, 11, 94, 14); | |
contentPane.add(lblAnzNoten); | |
txAnzNoten = new JTextField(); | |
txAnzNoten.addKeyListener(new KeyAdapter() { | |
@Override | |
public void keyPressed(KeyEvent e) { | |
if(e.getKeyCode() == KeyEvent.VK_ENTER) { | |
btnbernehmen.requestFocus(); | |
} | |
} | |
}); | |
txAnzNoten.setBounds(10, 31, 76, 20); | |
contentPane.add(txAnzNoten); | |
txAnzNoten.setColumns(10); | |
btnbernehmen = new JButton("\u00DCbernehmen"); | |
btnbernehmen.addKeyListener(new KeyAdapter() { | |
@Override | |
public void keyPressed(KeyEvent a) { | |
if(a.getKeyCode() == KeyEvent.VK_ENTER) { | |
btnbernehmen.setVisible(false); | |
txAnzNoten.setEnabled(false); | |
txNote.setVisible(true); | |
btnbernehmen2.setVisible(true); | |
lblNote.setVisible(true); | |
} | |
} | |
}); | |
btnbernehmen.setBounds(118, 31, 131, 20); | |
contentPane.add(btnbernehmen); | |
JButton btnEnde = new JButton("Ende"); | |
btnEnde.addActionListener(new ActionListener() { | |
public void actionPerformed(ActionEvent arg0) { | |
System.exit(0); | |
} | |
}); | |
btnEnde.setBounds(381, 256, 98, 20); | |
contentPane.add(btnEnde); | |
txNote = new JTextField(); | |
txNote.addKeyListener(new KeyAdapter() { | |
@Override | |
public void keyPressed(KeyEvent e) { | |
if(e.getKeyCode() == KeyEvent.VK_ENTER) { | |
btnbernehmen2.requestFocus(); | |
} | |
} | |
}); | |
txNote.setColumns(10); | |
txNote.setBounds(10, 93, 76, 20); | |
txNote.setVisible(false); | |
contentPane.add(txNote); | |
btnbernehmen2 = new JButton("\u00DCbernehmen"); | |
btnbernehmen2.addKeyListener(new KeyAdapter() { | |
@Override | |
public void keyPressed(KeyEvent e) { | |
if(e.getKeyCode() == KeyEvent.VK_ENTER) { | |
Berechnungen(); | |
clicked++; | |
} | |
} | |
}); | |
//*********************fill the Array************************* | |
btnbernehmen2.addActionListener( new ActionListener() { | |
@Override | |
private void ActionPerformed(ActionEvent evt) { | |
if(!txNote.getText().equals("") | |
&& Double.parseDouble(txNote.getText()) >= 1 | |
&& Double.parseDouble(txNote.getText()) <= 6) { | |
summe = summe + Double.parseDouble(txNote.getText()); | |
noten[counter-1] = Double.parseDouble(txNote.getText()); | |
} | |
} | |
}); | |
btnbernehmen2.setBounds(118, 93, 131, 20); | |
btnbernehmen2.setVisible(false); | |
contentPane.add(btnbernehmen2); | |
lblNote = new JLabel("1. Note"); | |
lblNote.setBounds(10, 75, 94, 14); | |
lblNote.setVisible(false); | |
contentPane.add(lblNote); | |
btnNeueBerechnung = new JButton("Neue Berechnung"); | |
btnNeueBerechnung.addActionListener(new ActionListener() { | |
public void actionPerformed(ActionEvent a) { | |
txAnzNoten.setEnabled(true); | |
txAnzNoten.setText(""); | |
btnbernehmen.setVisible(true); | |
btnbernehmen2.setVisible(false); | |
txNote.setEnabled(true); | |
txNote.setText(""); | |
lbleingegebeneNoten.setText(""); | |
lblDurchschnitt.setText(""); | |
lblBesteNote.setText(""); | |
lblSchlechteste.setText(""); | |
btnNeueBerechnung.setVisible(false); | |
lblNote.setText("1. Note"); | |
clicked = 0; | |
counter = 0; | |
noteGesamt = 0; | |
lblNoten.setVisible(false); | |
} | |
}); | |
btnNeueBerechnung.addKeyListener(new KeyAdapter() { | |
@Override | |
public void keyPressed(KeyEvent e) { | |
if(e.getKeyCode() == KeyEvent.VK_ENTER) { | |
txAnzNoten.setEnabled(true); | |
txAnzNoten.setText(""); | |
btnbernehmen.setVisible(true); | |
btnbernehmen2.setVisible(false); | |
txNote.setEnabled(true); | |
txNote.setText(""); | |
lbleingegebeneNoten.setText(""); | |
lblDurchschnitt.setText(""); | |
lblBesteNote.setText(""); | |
lblSchlechteste.setText(""); | |
btnNeueBerechnung.setVisible(false); | |
lblNote.setText("1. Note"); | |
clicked = 0; | |
counter = 0; | |
noteGesamt = 0; | |
lblNoten.setVisible(false); | |
} | |
if(e.getKeyCode() == KeyEvent.VK_DOWN) { | |
btnEnde.requestFocus(); | |
} | |
} | |
}); | |
btnNeueBerechnung.setBounds(280, 31, 144, 20); | |
btnNeueBerechnung.setVisible(false); | |
contentPane.add(btnNeueBerechnung); | |
lbleingegebeneNoten = new JLabel(""); | |
lbleingegebeneNoten.setBounds(10, 144, 182, 16); | |
contentPane.add(lbleingegebeneNoten); | |
lblDurchschnitt = new JLabel(""); | |
lblDurchschnitt.setBounds(10, 172, 182, 16); | |
contentPane.add(lblDurchschnitt); | |
lblBesteNote = new JLabel(""); | |
lblBesteNote.setBounds(10, 200, 182, 16); | |
contentPane.add(lblBesteNote); | |
lblSchlechteste = new JLabel(""); | |
lblSchlechteste.setBounds(10, 233, 182, 16); | |
contentPane.add(lblSchlechteste); | |
lblNoten = new JLabel(""); | |
lblNoten.setBounds(10, 260, 353, 16); | |
contentPane.add(lblNoten); | |
txNoBearbeiten = new JTextField(); | |
txNoBearbeiten.setBounds(280, 93, 30, 20); | |
contentPane.add(txNoBearbeiten); | |
txNoBearbeiten.setColumns(10); | |
setVisible(false); | |
lblNoBearbeiten = new JLabel(". Note bearbeiten"); | |
lblNoBearbeiten.setBounds(313, 96, 111, 14); | |
contentPane.add(lblNoBearbeiten); | |
setVisible(false); | |
btnOk = new JButton("Ok"); | |
btnOk.setBounds(423, 93, 56, 20); | |
contentPane.add(btnOk); | |
lblNeuerWert = new JLabel(""); | |
lblNeuerWert.setBounds(280, 125, 111, 14); | |
contentPane.add(lblNeuerWert); | |
setVisible(false); | |
txNeueNote = new JTextField(); | |
txNeueNote.setColumns(10); | |
txNeueNote.setBounds(280, 150, 50, 20); | |
contentPane.add(txNeueNote); | |
setVisible(false); | |
btnSpeichern = new JButton("Speichern"); | |
btnSpeichern.setBounds(352, 150, 127, 20); | |
contentPane.add(btnSpeichern); | |
setVisible(false); | |
} | |
private void Berechnungen(){ | |
counter++; | |
anzNoten = Integer.parseInt(txAnzNoten.getText()); | |
// Neue Beschriftung der Label und Löschen der eingegebenen Note im Textfenster | |
txNote.setName("txNote" + counter ); | |
lblNote.setText(counter + ". Note"); | |
txNote.selectAll(); | |
txNote.requestFocus(); | |
// Erste Ergebnisanzeige im Label: Anzahl der eingegebenen Noten | |
lbleingegebeneNoten.setText("Anzahl eingebene Noten: " + counter); | |
// Zweite Ergebnisanzeige im Label: Durchschnitt der eingegebenen Noten | |
double note = Double.parseDouble(txNote.getText()); | |
noteGesamt = noteGesamt + note; | |
durchschnitt = noteGesamt / counter; | |
lblDurchschnitt.setText("Notendurchschnitt: " + durchschnitt); | |
// Dritte Ergebnisanzeige im Label: Beste Note | |
beste = Integer.parseInt(txNote.getText()); | |
if (clicked == 0) { | |
noteBeste = Integer.parseInt(txNote.getText()); | |
} | |
if (noteBeste > beste) { | |
noteBeste = beste; | |
lblBesteNote.setText("Beste Note: " + noteBeste); | |
} else if (noteBeste == beste) { | |
lblBesteNote.setText("Beste Note: " + noteBeste); | |
} else if (noteBeste < beste) { | |
lblBesteNote.setText("Beste Note: " + noteBeste); | |
} | |
// Vierte Ergebnisanzeige im Label: Schlechteste Note | |
schlechteste = Integer.parseInt(txNote.getText()); | |
if (clicked == 0) { | |
noteSchlechteste = Integer.parseInt(txNote.getText()); | |
} | |
if (noteSchlechteste < schlechteste) { | |
noteSchlechteste = schlechteste; | |
lblSchlechteste.setText("Schlechteste Note: " + noteSchlechteste); | |
} else if (noteSchlechteste == schlechteste) { | |
lblSchlechteste.setText("Schlechteste Note: " + noteSchlechteste); | |
} else if (noteSchlechteste > schlechteste) { | |
lblSchlechteste.setText("Schlechteste Note: " + noteSchlechteste); | |
} | |
// Letzte Änderung durch Eingabe: Neue Berechnung | |
if (counter == anzNoten) { | |
btnbernehmen2.setVisible(false); | |
btnNeueBerechnung.setVisible(true); | |
btnNeueBerechnung.requestFocus(); | |
//Änderungen für das Array | |
lblNoten.setText("Noten: " ); | |
for (int i=0; i < noten.length; i++) { | |
lblNoten.setText(lblNoten.getText() + " " + noten[counter]); | |
} | |
lblNoten.setVisible(true); | |
lblNoBearbeiten.setVisible(true); | |
txNoBearbeiten.setVisible(true); | |
btnOk.setVisible(true); | |
lblNeuerWert.setVisible(true); | |
txNeueNote.setVisible(true); | |
btnSpeichern.setVisible(true); | |
} | |
} | |
} | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private void btnbernehmen2ActionPerformed(ActionEvent evt){ | |
if (!txNote.getText().equals("") && Double.parseDouble(txNote.getText()) >= 1 && Double.parseDouble(txNote.getText()) <= 6) { | |
summe = summe + Double.parseDouble(txNote.getText()); | |
noten[counter-1] = Double.parseDouble(txNote.getText()); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@laurocaetano