Tekil Mesaj gösterimi
Alt 14 Aralık 2010, 00:10   #3
Çevrimdışı
Fonzerelli
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: JAVA, JAVA FX, JAVA EE(Enterprise), JAVA ME(Mobile)




HESAP MAKİNESİ(Calculator) JAVA DESKTOP APPLICATION

Genellikle programlama derslerinin vazgeçilmez ilk orneklerindendir fakat benim için pek öyle olmadı. Öğrencilerin yararlanabilmesi için klasik toplama,cıkarma,carpma,bölme,yuzde hesabı,1 bölüm, karakök vs.


Ekran görüntüsü (GUI olarak pek tatmin edici değil ama sonra düzeltirim)


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.




SwingCalculator.java


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
package calc; /** * * @author CAN */ import javax.swing.*; class SwingCalculator { public static void main(String[] args) { JFrame frame = new Calculator(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); //Frame i çağırıyoruz,gui kısmının gorunme ozelliğini katif ediyoruz } }

Calculator.java class ı

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/** * * @author CAN */ package Calc; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; class Calculator extends JFrame { private final Font BIGGER_FONT = new Font("monspaced", Font.PLAIN, 20); private JTextField textfield; private boolean number = true; private String equalOp = "="; private CalculatorOp op = new CalculatorOp(); public Calculator() { textfield = new JTextField("0", 12); textfield.setHorizontalAlignment(JTextField.RIGHT); textfield.setFont(BIGGER_FONT); ActionListener numberListener = new NumberListener(); String buttonOrder = "1234567890 "; //sayılar JPanel buttonPanel = new JPanel(); //dizayn ıcın panale (sayıların uzerıen durdugu) buttonPanel.setLayout(new GridLayout(4, 4, 4, 4)); for (int i = 0; i < buttonOrder.length(); i++) { String key = buttonOrder.substring(i, i+1); if (key.equals(" ")) { buttonPanel.add(new JLabel("")); } else { JButton button = new JButton(key); button.addActionListener(numberListener); button.setFont(BIGGER_FONT); //butonların yazı fontları buttonPanel.add(button); // butonların frame uzerındekı panel e eklenmesi } } ActionListener operatorListener = new OperatorListener(); // operatorlerin cagrılması JPanel panel = new JPanel(); panel.setLayout(new GridLayout(4, 4, 4, 4)); String[] opOrder = {"+", "-", "*", "/","=","C"}; //Operator işlemlerinin tutuldugu String array i for (int i = 0; i < opOrder.length; i++) { JButton button = new JButton(opOrder[i]); button.addActionListener(operatorListener); button.setFont(BIGGER_FONT); panel.add(button); } JPanel pan = new JPanel(); pan.setLayout(new BorderLayout(4, 4)); pan.add(textfield, BorderLayout.NORTH ); pan.add(buttonPanel , BorderLayout.CENTER); pan.add(panel , BorderLayout.EAST ); this.setContentPane(pan); this.pack(); this.setTitle("Calculator"); // Panel baslıgı this.setResizable(false); } private void action() { number = true; textfield.setText("0"); equalOp = "="; op.setTotal("0"); } class OperatorListener implements ActionListener { // operator fonksiyonları ve işlemleri public void actionPerformed(ActionEvent e) { if (number) { action(); textfield.setText("0"); } else { number = true; String displayText = textfield.getText(); if (equalOp.equals("=")) { //eşittir operatoru op.setTotal(displayText); } else if (equalOp.equals("+")) { //toplama operatoru op.add(displayText); } else if (equalOp.equals("-")) { // cıkarma operatoru op.subtract(displayText); } else if (equalOp.equals("*")) { //carpma operatoru op.multiply(displayText); } else if (equalOp.equals("/")) { //bolme operatoru op.divide(displayText); } textfield.setText("" + op.getTotalString()); //toplam işlemi equalOp = e.getActionCommand(); } } } class NumberListener implements ActionListener { public void actionPerformed(ActionEvent event) { String digit = event.getActionCommand(); if (number) { textfield.setText(digit); number = false; } else { textfield.setText(textfield.getText() + digit); //textfield icine yazılması } } } public class CalculatorOp { private int total; public CalculatorOp() { total = 0; } public String getTotalString() { return ""+total; } public void setTotal(String n) { total = convertToNumber(n); } public void add(String n) { total += convertToNumber(n); } public void subtract(String n) { total -= convertToNumber(n); } public void multiply(String n) { total *= convertToNumber(n); } public void divide(String n) { total /= convertToNumber(n); } private int convertToNumber(String n) { return Integer.parseInt(n); } } }

Öğrenciler için güzel bir uygulama ve yeni baslayanlar için..

Keyifli Forumlar..


Konu Fonzerelli tarafından (14 Aralık 2010 Saat 23:49 ) değiştirilmiştir.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet