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

#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.
Wenn keine ganze Zahl (Integer) eingegeben wurde soll eine Fehlermeldung erscheinen und der Benutzer wird noch einmal aufgefordert eine Zahl einzugeben.
#24

von kollar (340 Punkte)
- 03.12.2019 um 15:11 Uhr

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
Seite 1 von 0
1