Java-2 2016 Hafta-8 Örnek-1
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class gelirvergisi implements ActionListener { JList[] jl; DefaultListModel[] dlm; JComboBox jcb; JTextField jtf_gelirtop,jtf_yenigelir; JRadioButton jrb_ocak,jrb_temmuz; public gelirvergisi() { JFrame jfrm = new JFrame("Gelir Vergisi - 2016"); jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jfrm.setLayout(new GridLayout(1,5)); jfrm.setSize(500, 250); JPanel[] jpn = new JPanel[5]; jl= new JList[5]; dlm=new DefaultListModel[5]; String[] baslik={"İsim","Gelir Top.","Yeni Gelir","Dönem","Vergi"}; for(int i =0; i<jpn.length;i++) { jpn[i]= new JPanel(); jpn[i].setPreferredSize(new Dimension(95, 295)); dlm[i]= new DefaultListModel(); jl[i]=new JList(dlm[i]); JScrollPane jscp= new JScrollPane(jl[i]); jscp.setPreferredSize(new Dimension(90,160)); JLabel jlab = new JLabel(baslik[i]); jpn[i].add(jlab); jpn[i].add(jscp); // jlist panele eklendi jfrm.add(jpn[i]); } //1. sutun eklemeleri String[] isimler ={"Seçiniz","Ahmet","Mustafa","Metin","Ayse","Fatma"}; jcb= new JComboBox(isimler); jcb.setPreferredSize(new Dimension(90,25)); jpn[0].add(jcb); JButton jbtn1= new JButton("Ekle"); jbtn1.addActionListener(this); jbtn1.setActionCommand("ekle"); // buton etiketi jbtn1.setPreferredSize(new Dimension(90,25)); jpn[0].add(jbtn1); //2. sutun jtf_gelirtop= new JTextField(); jtf_gelirtop.setPreferredSize(new Dimension(90,25)); jpn[1].add(jtf_gelirtop); JButton jbtn2= new JButton("Sil"); jbtn2.addActionListener(this); jbtn2.setPreferredSize(new Dimension(90,25)); jpn[1].add(jbtn2); //3.sutun jtf_yenigelir= new JTextField(); jtf_yenigelir.setPreferredSize(new Dimension(90,25)); jpn[2].add(jtf_yenigelir); //4. sutun ButtonGroup bg = new ButtonGroup(); jrb_ocak = new JRadioButton("Ocak"); jrb_ocak.setSelected(true); jrb_temmuz = new JRadioButton("Temmuz"); bg.add(jrb_ocak); bg.add(jrb_temmuz); JPanel jpn4_1 = new JPanel(); JPanel jpn4_2 = new JPanel(); jpn4_1.setLayout(new FlowLayout(FlowLayout.LEFT)); jpn4_2.setLayout(new FlowLayout(FlowLayout.LEFT)); jpn4_1.setPreferredSize(new Dimension(90,25)); jpn4_2.setPreferredSize(new Dimension(90,25)); jpn4_1.add(jrb_ocak); jpn4_2.add(jrb_temmuz); jpn[3].add(jpn4_1); jpn[3].add(jpn4_2); jfrm.setVisible(true); } @Override public void actionPerformed(ActionEvent ae) { if(ae.getActionCommand().equals("ekle")) { // ekle int secilen_isim = jcb.getSelectedIndex(); int donem=0; if(jrb_temmuz.isSelected()) donem=1; double mevcutgelir,yenigelir; try{ if(secilen_isim>0 && jtf_gelirtop.getText().length()>0 && jtf_yenigelir.getText().length()>0 ){ mevcutgelir=Double.parseDouble(jtf_gelirtop.getText()); yenigelir=Double.parseDouble(jtf_yenigelir.getText()); String[] donemler={"Ocak","Temmuz"}; double vergi=vergihesapla(mevcutgelir, yenigelir, donem); dlm[0].addElement(jcb.getSelectedItem()); // isim dlm[1].addElement(mevcutgelir); // gelir top. dlm[2].addElement(yenigelir); // yeni gelir dlm[3].addElement(donemler[donem]); // donem dlm[4].addElement(vergi); // vergi jcb.setSelectedIndex(0); jtf_gelirtop.setText(""); jtf_yenigelir.setText(""); jrb_ocak.setSelected(true); } }catch(Exception ex) { } } else { int secilen = jl[0].getSelectedIndex(); if(secilen>-1) { for(int i=0;i<dlm.length;i++) { dlm[i].remove(secilen); } } } } private double vergihesapla(double mevcutgelir,double yenigelir, int donem) { double toplamvergi=0; double[] oranlar={0.15,0.2,0.27,0.35}; double[] ocak={12600,30000,110000}; double[] temmuz={13000,31000,120000}; // henuz belirlenmedi degerler farazi double[] donemsiniri; // kullanilacak doneme ait sinirlar donemsiniri=ocak; if(donem==1) donemsiniri=temmuz; double anapara=mevcutgelir; double kalan = yenigelir; do{ int onceki=oranbul(anapara,donemsiniri); int sonraki=oranbul(anapara+kalan,donemsiniri); if(onceki==sonraki) { // durum1 : tamamini vergilendir toplamvergi+=kalan*oranlar[onceki]; kalan=0; } else { // durum2 : sinir ustunde devam etmeli double vergilendirilecek=donemsiniri[onceki]-anapara; toplamvergi+=vergilendirilecek*oranlar[onceki]; anapara+=vergilendirilecek; kalan-=vergilendirilecek; } }while(kalan>0); return toplamvergi; } private int oranbul(double gelir,double[] sinirlar) { for(int i=0;i<sinirlar.length;i++) { if(gelir < sinirlar[i]) return i; } return sinirlar.length; } /** * @param args */ public static void main(String[] args) { new gelirvergisi(); } }