//Ćwiczenie 9 sem.2
import java.text.DecimalFormat;
import java.text.NumberFormat;
import javax.swing.JOptionPane;
public class Obliczanie extends javax.swing.JFrame { double liczba1, liczba2, wynik;
public Obliczanie() { initComponents();
}
private void jButton1ActionPerformed (java.awt.event.ActionEvent evt) { jButton2.setEnabled(false);
try {
//s1, s2 – dane z pól tekstowych
//znak przecinka w danych będzie zastąpiony kropką String s1 = jTextField1.getText();
String s2 = jTextField2.getText();
liczba1 = Double.parseDouble(s1.replace(",", "."));
liczba2 = Double.parseDouble(s2.replace(",", "."));
switch (jComboBox1.getSelectedIndex()) { case 0:
wynik = liczba1 + liczba2;
break;
case 1:
wynik = liczba1 - liczba2;
break;
case 2:
wynik = liczba1 * liczba2;
break;
case 3:
if (liczba2 == 0) throw new ArithmeticException("Dzielenie przez zero!!!");
wynik = liczba1 / liczba2;
}
NumberFormat f = new DecimalFormat("0.###");
jTextField3.setText(f.format(wynik));
jButton2.setEnabled(true);
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(this, "Błędnie podano wartość liczbową argumentu!",
"Niepoprawne dane", 0);
} catch (ArithmeticException e) {
JOptionPane.showMessageDialog(this, e.getMessage(), "Niepoprawne działanie", 0); } }
private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) { jTextField3.setText(""); jButton2.setEnabled(false);
}
private void jTextField2KeyTyped(java.awt.event.KeyEvent evt) { jTextField3.setText(""); jButton2.setEnabled(false);
}
private void jComboBox1ItemStateChanged(java.awt.event.ItemEvent evt) { jTextField3.setText(""); jButton2.setEnabled(false);
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { String s = liczba1 + (String) jComboBox1.getSelectedItem() + liczba2 + "="
+ jTextField3.getText() + "\n";
jTextArea1.append(s);
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { int odpowiedź = JOptionPane.showConfirmDialog(this, "Czy usunąć zapis?");
if (odpowiedź == JOptionPane.YES_OPTION) jTextArea1.setText("");
}
/** @param args the command line arguments */
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() { public void run() {
new Obliczanie().setVisible(true);
} });
} }