Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Java: Jaolliset

JRokka [28.11.2019 16:50:09]

#

Tämä ohjelma, etsii x:llä jaolliset luvut. Kun ollaan ArrayListin lopussa aloitetaan alusta.

Koodi

Kirjoita koodi tähän. (Java)import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.ArrayList;

public class Jaolliset extends JApplet implements ActionListener {
    //Luodaan objektit
    //Rivi 1
    JPanel rivi1 = new JPanel();
    JLabel teksti = new JLabel("0");
    //Rivi 2
    JPanel rivi2 = new JPanel();
    JTextField tlaatikko = new JTextField(10);
    //Rivi 3
    JPanel rivi3 = new JPanel();
    JButton nappain_1 = new JButton("Lisää");
    JButton nappain_2  = new JButton("Jaollinen");
    ArrayList<Integer> luvut = new ArrayList<>();

    public void init(){
        //Asetellaan objektit.
        GridLayout appletinAsettelu = new GridLayout(5,1,10,10);
        Container ruutu = getContentPane();
        ruutu.setLayout(appletinAsettelu);
        //Lisätään kuuntelijat.
        nappain_1.addActionListener(this);
        nappain_2.addActionListener(this);
        //Ensimmäinen rivi
        FlowLayout asettelu1 = new FlowLayout(FlowLayout.CENTER,10,10);
        rivi1.setLayout(asettelu1);
        rivi1.add(teksti);
        ruutu.add(rivi1);
        //Toinen rivi
        FlowLayout asettelu2 = new FlowLayout(FlowLayout.CENTER,10,10);
        rivi2.setLayout(asettelu2);
        rivi2.add(tlaatikko);
        ruutu.add(rivi2);
        //Kolmas rivi
        FlowLayout asettelu3 = new FlowLayout(FlowLayout.CENTER,10,10);
        rivi3.setLayout(asettelu3);
        rivi3.add(nappain_1);
        rivi3.add(nappain_2);
        ruutu.add(rivi3);
        setContentPane(ruutu);
    }
    int indeksi = 0;
    public void actionPerformed(ActionEvent e){
        String komento = e.getActionCommand();
        if (komento.equals("Lisää")){
            //Lisätään luku.
            int luku = Integer.valueOf(tlaatikko.getText());
            indeksi = 0; //Aloitetaan alusta.
            luvut.add(luku);
        }
        else if (komento.equals("Jaollinen")){
            //Etsitään x:llä jaolliset luvut.
            int luku = Integer.valueOf(tlaatikko.getText());
            //Etsitään lukua.
            do {
                if (indeksi < luvut.size()-1){
                    //Luku ei saa mennä ArrayListin yli
                    indeksi++;
                }

            } while (luvut.get(indeksi) % luku != 0 && indeksi < luvut.size()-1);
            //Aloitetaan laskenta alusta, jos ollaan lopussa.
            if (indeksi == luvut.size()-1 && luvut.get(indeksi) % luku != 0){
                indeksi = -1;
            }
            //Näytetään luku.
            if (indeksi != -1){
                teksti.setText(String.valueOf(luvut.get(indeksi)));
            }
            if (indeksi == luvut.size()-1){
                indeksi = -1;
            }

        }

    }
}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta