Java :: Aufgabe #1 :: Lösung #24

28 Lösungen Lösungen öffentlich
#1

Für eine ganze Zahl alle Teiler ausgeben

Anfänger - Java von Gustl - 06.08.2012 um 23:20 Uhr
Schreiben Sie ein Programm, das dem Benutzer auffordert eine ganze Zahl einzugeben. Danach sollen alle möglichen Teiler dieser Zahl ausgegeben werden.
Wenn keine ganze Zahl (Integer) eingegeben wurde soll eine Fehlermeldung erscheinen und der Benutzer wird noch einmal aufgefordert eine Zahl einzugeben.
#24
vote_ok
von kollar (340 Punkte) - 03.12.2019 um 15:11 Uhr
Quellcode ausblenden Java-Code
import java.awt.FlowLayout;
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.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Teiler {
	public static void main(String[] args) {
		TeilerAusgeben teilerausgeben = new TeilerAusgeben("Alle Teiler ausgeben");

	}
}

class TeilerAusgeben extends JFrame implements ActionListener {

	JLabel lbl = new JLabel("Geben Sie eine ganze Zahl ein, und dann drücken Sie die OK Taste!");
	JTextField eingabe = new JTextField(10);
	JButton enter = new JButton("OK");
	JTextArea ergebnis = new JTextArea(10, 26);

	JPanel textPanel = new JPanel();
	JPanel eingabePanel = new JPanel();
	JPanel ergebnisPanel = new JPanel();

	TeilerAusgeben(String titel) {
		super(titel);
		setVisible(true);
		setSize(450, 300);
		setLocationRelativeTo(null);
		setLayout(new FlowLayout());
		setResizable(false);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		eingabe.setHorizontalAlignment(JTextField.RIGHT);
		enter.addActionListener(this);
		ergebnis.setLineWrap(true);
		ergebnis.setWrapStyleWord(true);
		ergebnisPanel.setPreferredSize(new java.awt.Dimension(300, 200));
		ergebnis.setEditable(false);

		textPanel.add(lbl);
		eingabePanel.add(eingabe);
		eingabePanel.add(enter);
		ergebnisPanel.add(ergebnis);

		add(textPanel);
		add(eingabePanel);
		add(ergebnisPanel);

	}

	public void teilerFinden(String eingabeString) {

		try {
			int zahl = Integer.parseInt(eingabeString);

			StringBuilder sbTeiler = new StringBuilder();

			for (int i = 2; i <= (zahl / 2); i++) {
				if (zahl % i == 0) {

					if (sbTeiler.length() > 0) {
						sbTeiler.append(", ");
					}

					sbTeiler.append(Integer.toString(i));
				}

			}

			if (sbTeiler.length() > 0) {
				sbTeiler.append(", ");
			}
			sbTeiler.append(Integer.toString(zahl));

			ergebnis.setText("Die Teiler sind: " + sbTeiler.toString());

		} catch (NumberFormatException e) {
			ergebnis.setText("Bitte ganze Zahl eingeben!");
		}
	}

	@Override
	public void actionPerformed(ActionEvent evt) {
		teilerFinden(eingabe.getText());
	}

}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2096877

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.