FAQ |
Calendar |
![]() |
|
Programming Share, tanya jawab, saling bantu antar programmer dengan berbagai macam bahasa pemrograman. |
![]() |
|
Thread Tools |
#1
|
|||
|
|||
![]()
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()) |
![]() |
|
|