Ceriwis  

Go Back   Ceriwis > HOBI > Komputer & Teknologi > Programming

Programming Share, tanya jawab, saling bantu antar programmer dengan berbagai macam bahasa pemrograman.

Reply
 
Thread Tools
  #1  
Old 20th November 2011
Darkc0der Darkc0der is offline
Ceriwiser
 
Join Date: Nov 2011
Posts: 598
Rep Power: 14
Darkc0der mempunyai hidup yang Normal
Default Tolong kritik dan saran y gan??? Calculator GUI part 2

Jika ada yang salah dari program yang gw buat ini tolong dikasih tahu gan, apapun itu pokoknya dari hal yang paling kecil ataupun yang paling besar. Maklum gan soalnya gw belajar otodidak gak pake guru, makasih ya gan atas partisipasinya....




Code:

import javax.swing.*;
import javax.swing.text.*;
import java.awt.*;
import java.awt.event.*;

class Calculator implements ActionListener {

// Inisialisasi component & layout
JLabel labelNum1 = new JLabel("Number 1", JLabel.RIGHT);
JLabel labelNum2 = new JLabel("Number 2", JLabel.RIGHT);
JLabel labelResult = new JLabel("Result", JLabel.RIGHT);

JTextField fieldNum1 = new JTextField();
JTextField fieldNum2 = new JTextField();
JTextField fieldResult = new JTextField();

JButton buttonAdd = new JButton("+");
JButton buttonSub = new JButton("-");
JButton buttonMul = new JButton("*");
JButton buttonDiv = new JButton("/");
JButton buttonClear = new JButton("Clear");

JFrame frame = new JFrame("E-Calculator");
GridBagConstraints constraints = new GridBagConstraints();
GridBagLayout gridBag = new GridBagLayout();

// Membuat layout GUI
public Calculator() {

constraints.insets = new Insets(10,10,10,10);
constraints.fill = GridBagConstraints.HORIZONTAL;

// Label Number 1
constraints.gridx = 0;
constraints.gridy = 0;
labelNum1.setFont(new Font("Times New Roman", Font.PLAIN, 17));
gridBag.setConstraints(labelNum1,constraints);
frame.getContentPane().add(labelNum1);

// Label Number 2
constraints.gridx = 0;
constraints.gridy = 1;
labelNum2.setFont(new Font("Times New Roman", Font.PLAIN, 17));
gridBag.setConstraints(labelNum2,constraints);
frame.getContentPane().add(labelNum2);

// Label Result
constraints.gridx = 0;
constraints.gridy = 4;
labelResult.setFont(new Font("Times New Roman", Font.PLAIN, 17));
gridBag.setConstraints(labelResult,constraints);
frame.getContentPane().add(labelResult);

// Button +
constraints.gridx = 1;
constraints.gridy = 2;
buttonAdd.addActionListener(this);
gridBag.setConstraints(buttonAdd,constraints);
frame.getContentPane().add(buttonAdd);

// Button -
constraints.gridx = 2;
constraints.gridy = 2;
buttonSub.addActionListener(this);
gridBag.setConstraints(buttonSub,constraints);
frame.getContentPane().add(buttonSub);

// Button *
constraints.gridx = 3;
constraints.gridy = 2;
buttonMul.addActionListener(this);
gridBag.setConstraints(buttonMul,constraints);
frame.getContentPane().add(buttonMul);

// Button /
constraints.gridx = 4;
constraints.gridy = 2;
buttonDiv.addActionListener(this);
gridBag.setConstraints(buttonDiv,constraints);
frame.getContentPane().add(buttonDiv);

// Field Number 1
constraints.gridx = 1;
constraints.gridy = 0;
constraints.gridwidth = 4;
fieldNum1.setDocument(new InputFieldFilter());
fieldNum1.setFont(new Font("Times New Roman", Font.PLAIN, 17));
gridBag.setConstraints(fieldNum1,constraints);
frame.getContentPane().add(fieldNum1);

// Field Number 2
constraints.gridx = 1;
constraints.gridy = 1;
constraints.gridwidth = 4;
fieldNum2.setDocument(new InputFieldFilter());
fieldNum2.setFont(new Font("Times New Roman", Font.PLAIN, 17));
gridBag.setConstraints(fieldNum2,constraints);
frame.getContentPane().add(fieldNum2);

// Field Result
constraints.gridx = 1;
constraints.gridy = 4;
constraints.gridwidth = 4;
fieldResult.setEditable(false);
fieldResult.setFont(new Font("Times New Roman", Font.PLAIN, 17));
gridBag.setConstraints(fieldResult,constraints);
frame.getContentPane().add(fieldResult);

// Button Clear
constraints.gridx = 1;
constraints.gridy = 3;
constraints.gridwidth = 4;
buttonClear.addActionListener(this);
gridBag.setConstraints(buttonClear,constraints);
frame.getContentPane().add(buttonClear);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
frame.setLayout(gridBag);
frame.show();
frame.setResizable(false);
frame.pack();
frame.setLocationRelativeTo(null);
}

// Check apakah nilainya integer atau double
public Boolean checkValue(double value1, double value2, double sum) {
if (value1==(int)value1 && value2==(int)value2 && sum==(int)sum)
return true;
else
return false;
}

// Action listener dari button (+,-,*,/)
public void actionPerformed(ActionEvent e) {
try {
double result;
Boolean kondisi;
String source = ((JButton)e.getSource()).getText();
double num1 = Double.valueOf(fieldNum1.getText());
double num2 = Double.valueOf(fieldNum2.getText());
if (source.equals("+")) {
result = num1 + num2;
kondisi = checkValue(num1, num2, result);
if (kondisi)
fieldResult.setText(Integer.toString((int)result)) ;
else
fieldResult.setText(Double.toString(result));
}
if (source.equals("-")) {
result = num1 - num2;
kondisi = checkValue(num1, num2, result);
if (kondisi)
fieldResult.setText(Integer.toString((int)result)) ;
else
fieldResult.setText(Double.toString(result));
}
if (source.equals("*")) {
result = num1 * num2;
kondisi = checkValue(num1, num2, result);
if (kondisi)
fieldResult.setText(Integer.toString((int)result)) ;
else
fieldResult.setText(Double.toString(result));
}
if (source.equals("/")) {
result = num1 / num2;
kondisi = checkValue(num1, num2, result);
if (kondisi)
fieldResult.setText(Integer.toString((int)result)) ;
else
fieldResult.setText(Double.toString(result));
}
if (source.equals("Clear")) {
fieldNum1.setText("");
fieldNum2.setText("");
fieldResult.setText("");
}
}
catch (Exception ex) {
JOptionPane.showMessageDialog(null,"Null entry is not allowed");
}
}

// Method main untuk menjalankan program
public static void main (String[] args) {
new Calculator();
}
}


Code:

// Membatasi inputan pada textfield
class InputFieldFilter extends PlainDocument {

public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
// Menentukan panjang inputan sebesar 20 karakter
if ((getLength()+str.length())

Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


 


All times are GMT +7. The time now is 01:24 AM.


no new posts