Hallo,
bin ein Anfänger und soll nach einem Tutorial im Buch ein Programm schreiben, das mir nach Angabe mehrerer Noten bestimmte Dinge berechnen soll wie z.B. den Notenschnitt, die beste Note, die schlechteste Note usw. Das Problem ist das ich im Programm mehrere Buttons habe. Soweit kein Problem doch mit dem Klicken auf ein Button soll dieser unsichtbar werden und ein anderer sichtbar. Wiederum groß auch kein Problem doch jetzt kommt ein dritter Button ins Spiel, der wiederum auch sich unsichtbar machen soll und einen anderen sichtbar. Das ganze ist so verzweigt das ich den Action Listener von einem der Button außerhalb des Erzeugungscode des Buttons schreiben muss. Im Buch wird die Version Java 7 verwendet. Die Befehle die hier genutzt werden, sind scheinbar unter Java 8 nicht mehr nutzbar. Der wichtige Befehl ist:
jBtnNeuActionPerformed(evt); > Das erkennt Eclipse nicht.
Der Code aus dem Buch:
bin ein Anfänger und soll nach einem Tutorial im Buch ein Programm schreiben, das mir nach Angabe mehrerer Noten bestimmte Dinge berechnen soll wie z.B. den Notenschnitt, die beste Note, die schlechteste Note usw. Das Problem ist das ich im Programm mehrere Buttons habe. Soweit kein Problem doch mit dem Klicken auf ein Button soll dieser unsichtbar werden und ein anderer sichtbar. Wiederum groß auch kein Problem doch jetzt kommt ein dritter Button ins Spiel, der wiederum auch sich unsichtbar machen soll und einen anderen sichtbar. Das ganze ist so verzweigt das ich den Action Listener von einem der Button außerhalb des Erzeugungscode des Buttons schreiben muss. Im Buch wird die Version Java 7 verwendet. Die Befehle die hier genutzt werden, sind scheinbar unter Java 8 nicht mehr nutzbar. Der wichtige Befehl ist:
jBtnNeuActionPerformed(evt); > Das erkennt Eclipse nicht.
Der Code aus dem Buch:
Java:
package gui;
/*
* Programm Notenbilanz berechnet aus mehreren eingegebenen
* Noten den Notenschnitt und gibt zusätzlich die beste, die
* schlechteste Note aus.
* Hans-Peter Habelitz
* 2011-12-22
*/
import java.text.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;
/**
* This code was edited or generated using CloudGarden's Jigloo SWT/Swing GUI
* Builder, which is free for non-commercial use. If Jigloo is being used
* commercially (ie, by a corporation, company or business for any purpose
* whatever) then you should purchase a license for each developer using Jigloo.
* Please visit [URL='http://www.cloudgarden.com']www.cloudgarden.com[/URL] for details. Use of Jigloo implies
* acceptance of these licensing terms. A COMMERCIAL LICENSE HAS NOT BEEN
* PURCHASED FOR THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED LEGALLY FOR
* ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class Notenbilanz extends javax.swing.JFrame {
private JLabel jLabel1;
private JButton jBtnAnzahlUebernehmen;
private JLabel jLNote;
private JButton jBtnNoteUebernehmen;
private JLabel jLNotenschnitt;
private JLabel jLSchlechtesteNote;
private JButton jBtnEnde;
private JButton jBtnNeu;
private JLabel jLNotenzahl;
private JLabel jLBesteNote;
private JTextField jTFNote;
private JTextField jTFNotenzahl;
public DecimalFormat fzahl;
public int notenzahl, i;
public double summe, besteNote, schlechtesteNote, notenschnitt;
/**
* Auto-generated main method to display this JFrame
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Notenbilanz inst = new Notenbilanz();
inst.setLocationRelativeTo(null);
inst.setTitle("Notenliste");
inst.setVisible(true);
}
});
}
public Notenbilanz() {
super();
initGUI();
}
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
getContentPane().setLayout(null);
this.setPreferredSize(new java.awt.Dimension(408, 253));
this.setTitle("Notenbilanz");
{
fzahl = new DecimalFormat("###,##0.00");
}
{
jLabel1 = new JLabel();
getContentPane().add(jLabel1);
jLabel1.setText("Anzahl Noten");
jLabel1.setBounds(6, 7, 89, 15);
}
{
jTFNotenzahl = new JTextField();
getContentPane().add(jTFNotenzahl);
jTFNotenzahl.setBounds(6, 28, 41, 21);
}
{
jBtnAnzahlUebernehmen = new JButton();
getContentPane().add(jBtnAnzahlUebernehmen);
jBtnAnzahlUebernehmen.setText("Übernehmen");
jBtnAnzahlUebernehmen.setBounds(73, 28, 142, 21);
jBtnAnzahlUebernehmen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jBtnAnzahlUebernehmenActionPerformed(evt);
}
});
}
{
jLNote = new JLabel();
getContentPane().add(jLNote);
jLNote.setText("1.Note");
jLNote.setBounds(6, 67, 47, 14);
jLNote.setVisible(false);
}
{
jTFNote = new JTextField();
getContentPane().add(jTFNote);
jTFNote.setBounds(6, 87, 41, 21);
jTFNote.setVisible(false);
}
{
jBtnNoteUebernehmen = new JButton();
getContentPane().add(jBtnNoteUebernehmen);
jBtnNoteUebernehmen.setText("Übernehmen");
jBtnNoteUebernehmen.setBounds(73, 87, 142, 21);
jBtnNoteUebernehmen.setVisible(false);
jBtnNoteUebernehmen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jBtnNoteUebernehmenActionPerformed(evt);
}
});
}
{
jLBesteNote = new JLabel();
getContentPane().add(jLBesteNote);
jLBesteNote.setBounds(6, 163, 365, 19);
}
{
jLNotenschnitt = new JLabel();
getContentPane().add(jLNotenschnitt);
jLNotenschnitt.setBounds(6, 138, 365, 19);
}
{
jLSchlechtesteNote = new JLabel();
getContentPane().add(jLSchlechtesteNote);
jLSchlechtesteNote.setBounds(6, 188, 365, 19);
}
{
jLNotenzahl = new JLabel();
getContentPane().add(jLNotenzahl);
jLNotenzahl.setBounds(6, 118, 374, 14);
}
{
jBtnNeu = new JButton();
getContentPane().add(jBtnNeu);
jBtnNeu.setText("Neue Berechnung");
jBtnNeu.setBounds(240, 28, 140, 21);
jBtnNeu.setVisible(false);
jBtnNeu.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jBtnNeuActionPerformed(evt);
}
});
}
{
jBtnEnde = new JButton();
getContentPane().add(jBtnEnde);
jBtnEnde.setText("Ende");
jBtnEnde.setBounds(279, 188, 94, 21);
jBtnEnde.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jBtnEndeActionPerformed(evt);
}
});
}
pack();
} catch (Exception e) {
e.printStackTrace();
}
}
private void jBtnAnzahlUebernehmenActionPerformed(ActionEvent evt) {
if (!jTFNotenzahl.getText().equals("")) {
notenzahl = Integer.parseInt(jTFNotenzahl.getText());
i = 1;
summe = 0;
besteNote = 6;
schlechtesteNote = 0;
jBtnAnzahlUebernehmen.setVisible(false);
jTFNotenzahl.setEditable(false);
jLNote.setVisible(true);
jTFNote.setVisible(true);
jBtnNoteUebernehmen.setVisible(true);
jTFNote.requestFocus();
} else {
JOptionPane.showMessageDialog(null, "Anzahl der Noten eingeben!");
jTFNotenzahl.requestFocus();
}
}
private void jBtnNoteUebernehmenActionPerformed(ActionEvent evt) {
if (!jTFNote.getText().equals("")
&& Double.parseDouble(jTFNote.getText()) >= 1
&& Double.parseDouble(jTFNote.getText()) <= 6) {
summe = summe + Double.parseDouble(jTFNote.getText());
notenschnitt = summe / i;
jLNotenschnitt.setText("Notenschnitt: "
+ fzahl.format(notenschnitt));
jLNotenzahl.setText("Anzahl eingegebene Noten: "
+ Integer.toString(i));
if (Double.parseDouble(jTFNote.getText()) > schlechtesteNote) {
schlechtesteNote = Double.parseDouble(jTFNote.getText());
jLSchlechtesteNote.setText("schlechteste Note: "
+ Double.toString(schlechtesteNote));
}
if (Double.parseDouble(jTFNote.getText()) < besteNote) {
besteNote = Double.parseDouble(jTFNote.getText());
jLBesteNote
.setText("beste Note: " + Double.toString(besteNote));
}
if (i == notenzahl) {
notenschnitt = summe / notenzahl;
jBtnNoteUebernehmen.setVisible(false);
jBtnNeu.setVisible(true);
} else {
i++;
jLNote.setText(Integer.toString(i) + ".Note");
jTFNote.setText("");
jTFNote.requestFocus();
}
} else {
JOptionPane.showMessageDialog(null, "gültige Note eingeben!");
jTFNote.requestFocus();
}
}
private void jBtnNeuActionPerformed(ActionEvent evt) {
i = 1;
jLNote.setText(Integer.toString(i) + ".Note");
summe = 0;
besteNote = 6;
schlechtesteNote = 0;
jBtnAnzahlUebernehmen.setVisible(true);
jTFNotenzahl.setEditable(true);
jLNote.setVisible(false);
jTFNote.setVisible(false);
jTFNote.setText("");
jBtnNoteUebernehmen.setVisible(false);
jTFNotenzahl.setText("");
jTFNotenzahl.requestFocus();
jLNotenschnitt.setText("");
jLBesteNote.setText("");
jLSchlechtesteNote.setText("");
jLNotenzahl.setText("");
jBtnNeu.setVisible(false);
}
private void jBtnEndeActionPerformed(ActionEvent evt) {
System.exit(0);
}
}
Zuletzt bearbeitet von einem Moderator: