Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Java: Pääomaverolaskuri

koodaaja [14.11.2021 00:45:43]

#

Tämä ohjelma laskee pääomaveron määrän tässä tapauksessa esimerkkinä ovat vuokratulot. Vuokratuloista vähennetään yhtiövastike ja korkomenot. Pääomaveron osuus on 30% ja 30 000€ ylittävältä osalta 34%.

import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;



public class PaaomaVerotus extends JFrame implements ActionListener {

 private static final long serialVersionUID = 1L;

 JTextField vuokra = new JTextField(10);
 JTextField yhtiovastike = new JTextField(10);
 JTextField korko = new JTextField(10);
 JLabel tulos = new JLabel("0");

 JRadioButton vuosi = new JRadioButton("vuosi");
 JRadioButton kuukausi = new JRadioButton("kuukausi");

 ButtonGroup valinnat = new ButtonGroup();

 public static void main(String[] args){
  new PaaomaVerotus().setVisible(true);
 }

 private PaaomaVerotus(){
 //Luodaan ikkuna.
  super("Pääomaverotus");
  setSize(600,600);
  setResizable(false);
  setDefaultCloseOperation(EXIT_ON_CLOSE);


  //Luodaan asettelu ja lisätään kontrollit.
  setLayout(new FlowLayout());
  JButton laske = new JButton("Laske");
  laske.addActionListener(this);
  add(laske);

  //Asetetaan fontti.
  tulos.setFont(new Font("Arial",Font.PLAIN,18));
  //Tekstikentät
  vuokra.setText("Vuokra");
  yhtiovastike.setText("Yhtiövastike");
  korko.setText("Korko");

  add(vuokra);
  add(yhtiovastike);
  add(korko);

  add(tulos);

  //Valinnat.
  add(vuosi);
  add(kuukausi);

  //Lisätään valinnat.
  valinnat.add(vuosi);
  valinnat.add(kuukausi);




 }

 @Override
 public void actionPerformed(ActionEvent e){

  double tulot = 0.0;
  double menot = 0.0;
  double verotettava = 0.0;
  double vero = 0.0;

  //Syöte on joko kuukausi tai vuoden tulot ja menot.
  //Lasketaan ensin tulot ja menot sen jälkeen verotettava summa ja lopuksi vero.
  if (vuosi.isSelected()){
   tulot = Double.valueOf(vuokra.getText());
   menot = Double.valueOf(yhtiovastike.getText())+Double.valueOf(korko.getText());
   verotettava = tulot-menot;

  }
  else if (kuukausi.isSelected()){
   tulot = Double.valueOf(vuokra.getText())*12;
   menot = Double.valueOf(yhtiovastike.getText())*12+Double.valueOf(korko.getText())*12;
   verotettava = tulot-menot;

  }

  //Lasketaan vero.
  if (verotettava > 30000){
   vero = verotettava*0.34;
  }
  else {
   vero = verotettava*0.3;

  }
  tulos.setText("Vero:" + String.valueOf(vero));
 }
}

Jere Sumell [14.11.2021 18:05:03]

#

Ihan näppärän oloista koodia ja kiva Swing-GUI, vaikka en ajanutkaan ohjelmaa.

Kanssa näppärää, jos on enemmän noita Swing-komponentteja, niin pystyy paremmin hallitsemaan layoutin suhteen sijoittelua, kun ryhmittelee vähän JPanel -komponentin sisälle ja ryhmittelee JButtoneita ja mitä noita TextBoxeja ja JLabeleita on, niin sitten JPanelit asemoi johonkin järkevään Layoutiin tuossa JFramessa. Tässähän sä käytät tuota FlowLayout -luokkaa, itse jotenkin jumiutunut, tai useimmiten käytän BorderLayOutia.

Olio-ohjelmoinnin jatkokurssillakin ja mitä Java-kirjallisuutta aika paljonkin aikanani lukenut, viime aikoina vähemmän, niin niissä kirjojen koodiesimerkeissäkin tuo JFrame yleensä periytetään tuossa luokan määrittelyn otsikkorivillä, vaikka sekään ole pakollista.

jalski [14.11.2021 18:46:08]

#

Kun rahan kanssa pelataan, löytyisi varmaan Javasta siihen hommaan kelvollisempia tietotyyppejäkin kuin double...

neosofta [15.11.2021 12:18:11]

#

Pelataanko täällä rahapelejä?

Vastaus

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

Tietoa sivustosta