Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Java: Luvut

JRokka [27.11.2019 13:57:12]

#

Ohjelmassa voi laskea, onko luku uniikki, onko luku olemassa, lukujen määrän, ovatko luvut vähintään tai korkeintaan sekä onko luku lukuvälillä. Ohjelmassa on myös tyhjennystoiminto.

Koodi

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.Collections;

public class GUI_Luku extends JApplet implements ActionListener {
    //Luodaan objektit.
    //Ensimmäiselle riville laitetaan teksti, toiseen laitetaan tekstilaatikko,
    //kolmanteen näppäimet ja viimeiseen radiobuttonit.
    //Rivi 1
    JPanel rivi1 = new JPanel();
    JLabel tulos = new JLabel("0");
    //Rivi 2
    JPanel rivi2 = new JPanel();
    JTextField teksti = new JTextField(10);
    //Rivi 3
    JPanel rivi3 = new JPanel();
    JButton nappain = new JButton("Paina");
    JButton nappain_2 = new JButton("Tyhjenna");
    //Rivi 4
    JPanel rivi4 = new JPanel();
    JRadioButton rb1 = new JRadioButton("Onko uniikki");
    JRadioButton rb2 = new JRadioButton("Onko olemassa");
    JRadioButton rb3 = new JRadioButton("Onko lukuvälillä");
    JRadioButton rb4 = new JRadioButton("Laske määrä");
    JRadioButton rb5 = new JRadioButton("Enintään");
    JRadioButton rb6 = new JRadioButton("Vähintään");
    JRadioButton rb7 = new JRadioButton("Lisää");
    ArrayList<Integer> luvut = new ArrayList<>();
    public void init(){
        //Asetellaan objektit.
        GridLayout appletinAsettelu = new GridLayout(5,1,10,10);
        Container ruutu = getContentPane();
        ruutu.setLayout(appletinAsettelu);
        //Rivi 1
        FlowLayout asettelu1 = new FlowLayout(FlowLayout.CENTER,10,10);
        rivi1.setLayout(asettelu1);
        rivi1.add(tulos);
        ruutu.add(rivi1);
        //Rivi 2
        FlowLayout asettelu2 = new FlowLayout(FlowLayout.CENTER,10,10);
        rivi2.setLayout(asettelu2);
        rivi2.add(teksti);
        ruutu.add(rivi2);
        //Rivi 3
        FlowLayout asettelu3 = new FlowLayout(FlowLayout.CENTER,10,10);
        rivi3.add(nappain);
        rivi4.add(nappain_2);
        rivi3.setLayout(asettelu3);
        ruutu.add(rivi3);
        //Rivi 4.
        FlowLayout asettelu4 = new FlowLayout(FlowLayout.CENTER, 10,10);
        rivi4.setLayout(asettelu4);
        //Laitetaan radiobuttonit yhteen.
        ButtonGroup bg = new ButtonGroup();
        bg.add(rb1);
        bg.add(rb2);
        bg.add(rb3);
        bg.add(rb4);
        bg.add(rb5);
        bg.add(rb6);
        bg.add(rb7);
        rivi4.add(rb1);
        rivi4.add(rb2);
        rivi4.add(rb3);
        rivi4.add(rb4);
        rivi4.add(rb5);
        rivi4.add(rb6);
        rivi4.add(rb7);
        ruutu.add(rivi4);


        //Lisätään kuuntelijat.
        nappain.addActionListener(this);
        nappain_2.addActionListener(this);
        setContentPane(ruutu);
    }

    public void actionPerformed(ActionEvent e){
        String komento = e.getActionCommand();

        //Suoritetaan toiminto.
        if (komento.equals("Paina")){
            int maara = 0;
            int luku = Integer.valueOf(teksti.getText());
            boolean onko = false;
            //Suoritetaan valinnan mukainen toiminto.
            if (rb1.isSelected()){
                //Uniikki luku.
                //Luku on uniiki, jos määrä on 1.
                //Lasketaan luvun määrä.
                for (int x = 0; x < luvut.size(); x++){
                    if (luvut.get(x) == luku){
                        //Luku löydetty.
                        maara++;
                    }
                }
                //Näytetään tulos.
                if (maara == 1){
                    tulos.setText("Luku on uniikki.");
                }
                else {
                    tulos.setText("Luku ei ole uniikki");
                }
            }
            if (rb2.isSelected()){
                //Onko olemassa
                //Oletetaan, että lukua ei ole kunnes toisin todistetaan.

                for (int x = 0; x < luvut.size(); x++){
                    if (luvut.get(x) == luku){
                        //Luku löydetty.
                        onko = true;
                    }
                }
                //Näytetään tulos.
                if (onko == false){
                    tulos.setText("Lukua ei ole.");
                }
                else {
                    tulos.setText("Luku on olemassa.");
                }
            }
            else if (rb3.isSelected()){
                //Onko lukuvälillä.
                //Järjestetään taulukko.
                int min = 0;
                int max = 0;
                Collections.sort(luvut);
                //Otetaan minimi ja maksimi.
                min = luvut.get(0);
                max = luvut.get(luvut.size()-1);
                //Katsotaan, onko luku lukuvälillä.
                if (luku >= min && luku <= max){
                    tulos.setText("Luku on lukuvälillä.");
                }
                else {
                    tulos.setText("Luku ei ole lukuvälillä.");
                }
            }
            else if (rb4.isSelected()){
                //Lasketaan luvun määrä.
                for (int x = 0; x < luvut.size(); x++){
                    if (luvut.get(x) == luku){
                        //Luku löydetty.
                        maara++;
                    }
                }
                //Näytetään tulos.
                tulos.setText("Määrä: " + String.valueOf(maara));
            }
            else if (rb5.isSelected()){
                //Katsotaan, onko ArrayListissä olevat luvut korkeintaan luku.
                //Oletetaan näin, jos toisin ei todisteta.
                onko = true;
                for (int x = 0; x < luvut.size(); x++){
                    if (luvut.get(x) > luku){
                        onko = false;
                    }
                }
                //Näytetään tulos.
                if (onko == true){
                    tulos.setText("Korkeintaan");
                }
                else {
                    tulos.setText("Ei ole korkeintaan");
                }

            }
            else if (rb6.isSelected()){
                //Katsotaan, onko ArrayListissä olevat luvut vähintään luku.
                //Oletetaan näin, jos toisin ei todisteta.
                onko = true;
                for (int x = 0; x < luvut.size(); x++){
                    if (luvut.get(x) < luku){
                        onko = false;
                    }
                }
                //Näytetään tulos.
                if (onko == true){
                    tulos.setText("Vähintään");
                }
                else {
                    tulos.setText("Ei ole vähintään");
                }

            }
            else if (rb7.isSelected()){
                //Lisätään luku.
                luvut.add(luku);
            }

        }
        else if (komento.equals("Tyhjenna")){
            //Tyhjennetään luvut.
            luvut.clear();
        }
    }

}

Vastaus

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

Tietoa sivustosta