Code Error Java?

2 Antworten

Pro Klasse eine Datei und beide Dateien im gleichen Package. So funktioniert die Umgebung von Java.

Das Bedeutet, dass dein Klassenname zugleich den Dateinamen darstellt.

// GUI.java
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.FlowLayout;

public class GUI extends JFrame {
    JButton button = new JButton("Berechnen");
    JLabel label = new JLabel("Bitte geben Sie die Zahl ein: ");
    JTextField textfield = new JTextField(2);
    JOptionPane popup = new JOptionPane();
    JPanel panel = new JPanel();

    public GUI () {
        setSize(300, 300);
        setTitle("Fakultätsrechner");
        setLayout(new FlowLayout());
        setVisible(true);

        panel.add(textfield);
        panel.add(label);
        panel.add(button);
        add(panel);

        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);


        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    String input = textfield.getText();
                    int number = Integer.parseInt(input);
                    int result = Main.fak(number);
                    JOptionPane.showMessageDialog(null, "Die Fakultät von " + number + " ist " + result);
                } catch (NumberFormatException ex) {
                    JOptionPane.showMessageDialog(null, "Bitte geben Sie eine gültige Ganzzahl ein.");
                }
            }
        });
    }
}


// Main.java
public class Main {
    public static void main(String[] args) {

        GUI gui = new GUI();

    }

    public static int fak (int n) {
        if (n == 0) {
            return 1;
        }
        return n * fak(n - 1);
    }

}



Woher ich das weiß:Berufserfahrung – > 20 Jahre in der Softwareentwicklung

verreisterNutzer  10.04.2024, 14:37

Hm, also ich habs mir erst jetzt richtig durchgelesen. Das ist ja auch so bei mir, aber trotzdem habe ich einen Error. Beide Klassen sind in unterschiedlichen Dateien und im src-Package.

Um das Problem zu beheben, könntest du entweder die Main-Klasse und die GUI-Klasse in derselben Datei organisieren oder die Main-Klasse als separate Datei speichern und ermöglichen, dass sie im Klassenpfad verfügbar ist, wenn du die GUI-Klasse ausführst.

Probiere das mal aus ansonsten müsste ich mal die Tage auf meiner Umgebung testen, dann kann ich dir mehr Infos geben.


verreisterNutzer  10.04.2024, 01:12

Die sind halt beide im Source-Package drin. Ich weiß nicht, wieso das Probleme macht.