📄 jframekalkulator.java
字号:
// jRadioButton1.setEnabled(true);
// jRadioButton2.setEnabled(true);
}
else{
cond1=false;
cond5=true;
pressed=false;
jTextHasil.setBackground(Color.LIGHT_GRAY);
s="0";s1="";s2="";
jTextHasil.setText(s);
jButtonPower.setLabel("ON");
// jButtonType.setLabel("Simple");
jButtonKuadrat.setEnabled(false);
jButtonTitik.setEnabled(false);
jButtonkali.setEnabled(false);
jButtonPangkat.setEnabled(false);
jButtonNo1.setEnabled(false);
jButtonTan.setEnabled(false);
jButtonAkar2.setEnabled(false);
jButtonPhi.setEnabled(false);
jButtonNo2.setEnabled(false);
jButtonCos.setEnabled(false);
jButtonNo5.setEnabled(false);
jButtonSin.setEnabled(false);
jButtonNo8.setEnabled(false);
jButtonNo9.setEnabled(false);
jButtonDel.setEnabled(false);
jButtonBagi.setEnabled(false);
jButtonAc.setEnabled(false);
jButtonKurang.setEnabled(false);
jButtonNo7.setEnabled(false);
jButtonNo4.setEnabled(false);
jButtonNo0.setEnabled(false);
jButtonShift.setEnabled(false);
jButtonNo6.setEnabled(false);
jButtonTambah.setEnabled(false);
jButtonFakrotial.setEnabled(false);
jButtonSamaDengan.setEnabled(false);
jButtonNo3.setEnabled(false);
jButtonType.setEnabled(false);
jButton1bagiX.setEnabled(false);
jButtonPersen.setEnabled(false);
jButtonPlusMinus.setEnabled(false);
jButtonCatatan.setEnabled(false);
jRadioButton1.setEnabled(false);
jRadioButton2.setEnabled(false);
}
}
}//GEN-LAST:event_jButtonPowerActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new JFrameKalkulator().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JButton jButton1bagiX;
private javax.swing.JButton jButtonAc;
private javax.swing.JButton jButtonAkar2;
private javax.swing.JButton jButtonBagi;
private javax.swing.JButton jButtonCatatan;
private javax.swing.JButton jButtonCos;
private javax.swing.JButton jButtonDel;
private javax.swing.JButton jButtonFakrotial;
private javax.swing.JButton jButtonKuadrat;
private javax.swing.JButton jButtonKurang;
private javax.swing.JButton jButtonNo0;
private javax.swing.JButton jButtonNo1;
private javax.swing.JButton jButtonNo2;
private javax.swing.JButton jButtonNo3;
private javax.swing.JButton jButtonNo4;
private javax.swing.JButton jButtonNo5;
private javax.swing.JButton jButtonNo6;
private javax.swing.JButton jButtonNo7;
private javax.swing.JButton jButtonNo8;
private javax.swing.JButton jButtonNo9;
private javax.swing.JButton jButtonPangkat;
private javax.swing.JButton jButtonPersen;
private javax.swing.JButton jButtonPhi;
private javax.swing.JButton jButtonPlusMinus;
private javax.swing.JButton jButtonPower;
private javax.swing.JButton jButtonSamaDengan;
private javax.swing.JButton jButtonShift;
private javax.swing.JButton jButtonSin;
private javax.swing.JButton jButtonTambah;
private javax.swing.JButton jButtonTan;
private javax.swing.JButton jButtonTitik;
private javax.swing.JButton jButtonType;
private javax.swing.JButton jButtonkali;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel1Kanan;
private javax.swing.JLabel jLabelHeader;
private javax.swing.JLabel jLabelKiri;
private javax.swing.JLabel jLabelSampingkanan;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JRadioButton jRadioButton1;
private javax.swing.JRadioButton jRadioButton2;
private java.awt.TextArea jTextCatatan;
private javax.swing.JTextField jTextHasil;
// End of variables declaration//GEN-END:variables
private String s="0",s1="",s2="",op="",s3="";
private double m=0,n=0,mem=0;
private Panel p1,p2,p3,p4,p5,p6,p7,p8;
private boolean cond=false,cond1=false,cond2=false,cond3=false,cond4=false,cond5=true,pressed=false,
catananPressed=false;
/*
the conditions :
1:cond :kondisi untuk button advance
2:cond1 :kondisi untuk button Power
3:cond3 :kondisi untuk radio button radian or degrees
4:cond4 :kondisi untuk Button catatan
5:cond5 :kondisi untuk Button titik
6:pressed for making the textfield = "" after any calculation
*/
public void calculate()
{
double l=0;
int o=0;
String opp="";
s2=s;
s="0";
m=Double.valueOf(s1).doubleValue();
n=Double.valueOf(s2).doubleValue();
opp=op;
if (op.compareTo("+")==0)
{
l=m+n;
op="";
jTextCatatan.append("\n" + m +" + "+n+" = "+l +"\n-------------------");
}
else if (op.compareTo("-")==0)
{
l=m-n;
op="";
jTextCatatan.append("\n" + m +" - "+n+" = "+l +"\n-------------------");
}
else if (op.compareTo("x")==0)
{
l=m*n;
op="";
jTextCatatan.append("\n" + m +" x "+n+" = "+l +"\n-------------------");
}
else if (op.compareTo("/")==0)
{
l=m/n;
op="";
jTextCatatan.append("\n" + m +" : "+n+" = "+l +"\n-------------------");
}
else if (op.compareTo("")==0)
{
l=Double.valueOf(s2).doubleValue();
}
else if (op.compareTo("^")==0)
{
o=Integer.valueOf(s2).intValue();
l= M1ruMath.pangkatN(m,o);
op="";
jTextCatatan.append("\n" + m +" pangkat "+o+" = "+l +"\n-------------------");
}
cond5=true;
pressed=true;
s=""+l;
jTextHasil.setText(s);
}
public void keyPressed(KeyEvent e)
{
double ac=e.getKeyCode();
if((ac==13)||(ac==10))
calculate();
else if(ac==8)
{
if(s.compareTo("")==0)
jTextHasil.setText("Error");
else
{
s=s.substring(0,s.length()-1);
jTextHasil.setText(s);
}
}
}
public void keyTyped(KeyEvent e)
{
char ch;
ch=e.getKeyChar();
if ((ch=='1')||(ch=='2')||(ch=='3')||(ch=='4')||(ch=='5')||(ch=='6')||(ch=='7')||(ch=='8')||(ch=='9')||(ch=='0'))
{ if(pressed)
{
s="0";
pressed=false;
}
if(s=="0")
s=""+ch;
else s=s+ch;
}
else if(ch=='.'&&cond5)
{
if(pressed)
{
s="0";
pressed=false;
}
s=s+ch;
cond5=false;
}
else if((ch=='+')||(ch=='-')||(ch=='*')||(ch=='/'))
{
op=""+ch;
s1=s;
s="0";
}
else if(ch=='=')
calculate();
jTextHasil.setText(s);
}
public void keyReleased(KeyEvent e)
{
}
public void itemStateChanged(ItemEvent e)
{
}
public void actionPerformed(ActionEvent e) {
if ( e.getSource()==jButtonCatatan)//buat munculin catatan
{
if (!catananPressed)
{
jButtonCatatan.setText("Close");
jButtonCatatan.setToolTipText("catatan akan di tutup");
catananPressed = true;
jTextCatatan.setEnabled(true);
}
else
{
jButtonCatatan.setText("Catatan");
jButtonCatatan.setToolTipText("catatan akan di Buka");
catananPressed = false;
jTextCatatan.setEnabled(false);
}
}
else if (e.getSource()==jButtonType)//buat advanced button
{
if(!cond)
{
cond=true;
jButtonType.setLabel("Simple");
jButtonKuadrat.setEnabled(true);
jButtonPangkat.setEnabled(true);
jButtonAkar2.setEnabled(true);
jButtonPhi.setEnabled(true);
jButtonCos.setEnabled(true);
jButtonSin.setEnabled(true);
jButtonTan.setEnabled(true);
jButtonShift.setEnabled(true);
jButtonFakrotial.setEnabled(true);
jButtonPlusMinus.setEnabled(true);
jButton1bagiX.setEnabled(true);
jButtonPersen.setEnabled(true);
jRadioButton1.setEnabled(true);
jRadioButton2.setEnabled(true);
}
else
{
jButtonType.setLabel("Advanced");
cond=false;
jButtonKuadrat.setEnabled(false);
jButtonPangkat.setEnabled(false);
jButtonAkar2.setEnabled(false);
jButtonPhi.setEnabled(false);
jButtonCos.setEnabled(false);
jButtonSin.setEnabled(false);
jButtonTan.setEnabled(false);
jButtonShift.setEnabled(false);
jButtonFakrotial.setEnabled(false);
jButtonPlusMinus.setEnabled(false);
jButton1bagiX.setEnabled(false);
jButtonPersen.setEnabled(false);
jRadioButton1.setEnabled(false);
jRadioButton2.setEnabled(false);
}
}
else if(e.getSource()==jButtonTitik)//semicolon
{
if(pressed)
{
s="0";
pressed=false;
}
if (cond5)
{
s=s+".";
cond5=false;
jTextHasil.setText(s);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -