¿Cómo hacer una calculadora JAVA?
¿Privado? ¿Electricidad estática? finales? ¿dragón? serialVersionUID? =?1L;
¿Fuente? ¿Fuente? =?¿Nuevo? Fuente ("Imitación de la dinastía Song",?1,?22);
¿Público? CalcBtn(¿Cadena? ¿Texto? ¿Color? Color)? {
Super(texto);
setForeground(color);
setFont(fuente);
setMargin(new?Insets( 0,? 0,?0,?0));
setFocusable(false);
}
}
@SuppressWarnings ("serie")
¿Público? ¿clase? ¿CalcFrame? ¿extender? JFrame? ¿Utensilios? ¿AcciónListener? {
Sr. ¿Electricidad estática? ¿Vacío? principal(Cadena[]?args)? {
¿Probarlo? {
administrador de interfaz de usuario . setlookandfeel(administrador de interfaz de usuario . getsystemlookandfeelclassname());
}? (¿Excepción? ex)? {
ej. printstacktrace();
}
¿Nuevo? CalcFrame(). establecer visible(verdadero);
}
¿Privado? ¿CalcBtn? btn_1? =?¿Nuevo? CalcBtn("1", color. blue);
¿Privado? ¿CalcBtn? btn_2? =?¿Nuevo? CalcBtn("2", color. blue);
¿Privado? ¿CalcBtn? btn_3? =?¿Nuevo? CalcBtn("3", color. blue);
¿Privado? ¿CalcBtn? btn_4? =?¿Nuevo? CalcBtn("4", color. blue);
¿Privado? ¿CalcBtn? btn_5? =?¿Nuevo? CalcBtn("5", color. blue);
¿Privado? ¿CalcBtn? btn_6? =?¿Nuevo? CalcBtn("6", color. blue);
¿Privado? ¿CalcBtn? btn_7? =?¿Nuevo? CalcBtn("7", color. blue);
¿Privado? ¿CalcBtn? btn_8? =?¿Nuevo? CalcBtn("8", color. blue);
¿Privado? ¿CalcBtn? btn_9? =?¿Nuevo? CalcBtn("9", color. blue);
¿Privado? ¿CalcBtn? btn_0? =?¿Nuevo? CalcBtn("0 ", color.
azul);
¿Privado? ¿CalcBtn? btn_back? =?¿Nuevo? CalcBtn("↓"; color . rojo);
¿Privado? ¿CalcBtn? btn_c? =?¿Nuevo? CalcBtn("C",color.red);
¿Privado? ¿CalcBtn? btn_ce? =?¿Nuevo? CalcBtn("CE", color . rojo);
¿Privado? ¿CalcBtn? btn_sub? =?¿Nuevo? CalcBtn("-",?color.red);
¿Privado? ¿CalcBtn? btn_multi? =?¿Nuevo? CalcBtn("* ",? color . rojo);
¿Privado? ¿CalcBtn? btn_div? =?¿Nuevo? CalcBtn("/",?color.red);
¿Privado? ¿CalcBtn? btn_add? =?¿Nuevo? CalcBtn(" ",? color . rojo);
¿Privado? ¿CalcBtn? btn_sqrt? =?¿Nuevo? CalcBtn("sqrt", color. blue);
¿Privado? ¿CalcBtn? btn_mod? =?¿Nuevo? CalcBtn(" ",? color. azul);
¿Privado? ¿CalcBtn? btn_x? =?¿Nuevo? CalcBtn("1/x ", color. azul);
¿Privado? ¿CalcBtn? btn_res? =?¿Nuevo? CalcBtn("= ",?color.red);
¿Privado? ¿CalcBtn? btn_punto? =?¿Nuevo? CalcBtn(" . ",?color . rojo);
¿Privado? ¿CalcBtn? btn_flag? =?¿Nuevo? CalcBtn("/-",? color. blue);
¿Privado? ¿Botón J? btn_mem? =?¿Nuevo? JButton(" ");
¿Privado? ¿CalcBtn? btn_m? =?¿Nuevo? CalcBtn("M",?Color.Blue);
¿Privado? ¿CalcBtn? btn_mc? =?¿Nuevo? CalcBtn("MC", color. azul);
¿Privado? ¿CalcBtn? btn_señor? =?¿Nuevo? CalcBtn("MR", color. blue);
¿Privado? ¿CalcBtn? btn_ms? =?¿Nuevo? CalcBtn("MS ", color.
azul);
JPanel? pan_jtf? =?¿Nuevo? JPanel();
JPanel? pan_back? =?¿Nuevo? JPanel();
JPanel? pan_mem? =?¿Nuevo? JPanel();
JPanel? pan_num? =?¿Nuevo? JPanel();
JTextField? jtf_res? =?¿Nuevo? JTextField();
//
¿Privado? ¿JMenúBar? ¿Barra de menú? =?¿Nuevo? JMenuBar();
¿Privado? JMenú? Menú_editar? =?¿Nuevo? JMenu(" Editar(e)");
¿Privado? JMenú? menú_vista? =?¿Nuevo? JMenu(" Ver(v)");
¿Privado? JMenú? Menú_Ayuda? =?¿Nuevo? JMenu(" Ayuda(h)");
¿Privado? ¿JMenúArtículo? editarMenú_copiar? =?¿Nuevo? JMenuItem("copia(c)");
¿Privado? ¿JMenúArtículo? Editar menú_Pegar? =?¿Nuevo? JMenuItem(" pegar(p)");
¿Privado? ¿JCheckBoxMenuItem? ¿Ver menu_standard? =?¿Nuevo? JCheckBoxMenuItem(
"Estándar(t)");
¿Privado? ¿JCheckBoxMenuItem? viewmenu_ciencia? =?¿Nuevo? JCheckBoxMenuItem("Ciencia(s)");
¿Privado? ¿JCheckBoxMenuItem? vermenu_grouping? =?¿Nuevo? JCheckBoxMenuItem(
"Paquete de números (I)");
¿Privado? ¿JMenúArtículo? menúayuda_ayuda? =?¿Nuevo? JMenuItem("Tema de ayuda(h)");
¿Privado? ¿JMenúArtículo? menú de ayuda_acerca de? =?¿Nuevo? JMenuItem("Acerca de la Calculadora(a)");
¿Cadena? guardar1,? guardar2
¿GranDecimal? op1,? op2
¿Booleano? esBigDecimal? =?Falso;
int? ¿preoperatorio? operación actual? =?0;
¿StringBuffer? cadena? =?¿Nuevo? buffer de cadena();
¿Público? MarcoCalc()? {
this.setTitle("?Yu?☆?string?");
this .setresizable(false);
setSize(444,?390
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT _ ON _ CLOSE);
setJMenuBar(barra de menú); establecer diseño (nulo);
init_pan_jtf();
init_menuBar();
init_pan_back();
init_pan_mem();
init_pan_num();
getCont
entPane(). agregar(pan_jtf);
getContentPane(). agregar(pan_back);
getContentPane(). agregar(pan_mem);
getContentPane(). add(pan_num);
}
¿Privado? ¿Vacío? init_menuBar()? {
barra de menú . agregar(menú _ editar);
barra de menú . agregar(menú _ ver); agregar(menú _ ayuda); /p>
menu_edit.add(editar menu_copy);
menu_edit.add(editar menu_paste);
menu_view.add(ver menú _ estándar);
menu_view.add(ver menu_science);
menu_view.añadir separador();
menu_view.add(Ver menu_group);
menu_help.add(ayuda menu_help);
menu_help.add separator();
menu_ ayuda . menú _ editar establecer mnemónico ('E');
menú _ ver establecer mnemónico(' V '); p>
menú _ ayuda . set mnemonic(' H ');
menú editar _ copiar set mnemonic(' C '); acelerador(pulsación de tecla. obtener pulsación de tecla(' C ',
Evento de entrada. CTRL_MASK));
menú de edición _ pegar establecer mnemónico(' P '); p>edit menu_paste . set accelerator(keystone . get keystone(' V ',
Evento de entrada.
CTRL_MASK));
ver menú _ estándar . set mnemonic(' T ');
ver menú _ science . >ver menú _ agrupación . set mnemonic(' I ');
menú de ayuda _ ayuda set mnemonic(' H ');
menú de ayuda _ acerca de . A ');
}
¿Público? ¿Vacío? init_pan_back()? {
pan_back.setSize(340,?40);
pan_back.setLocation(85,?60);
pan_back.setLayout(new?GridLayout( 1, 3, ?5, ?0));
pan_back . p> p>
pan _ back . add(BTN _ c);
btn_back.addActionListener(new?ActionListener()?{
Público?Voided?actionPerformed(ActionEvent) ?e )? {
Si? (!jtf_res.getText(). trim(). es igual("0."))?{
Si ! str.length()?{
jtf . settext(str . eliminar(str . length()?-?1 p>
str.length());
}? {
jtf_res.setText("0.");
str .setlength(0);
}
}
op2? =? ¿Nuevo? BigDecimal(jtf_res.getText().trim ()); >btn_c.addActionListener(new? ActionListener()? {
¿Público? ¿Nulo? actionPerformed(ActionEvent?e)? {
jtf_res.setText("0."); p>
op1? =?¿Nuevo? /p>
str.replace(0, str.length(),?");
¿Preparación preoperatoria? ?0;
}
});
btn_ce.addActionListener(new? ActionListener()? {
¿Público? ¿No válido? acción realizada (¿Evento de acción? mi)? {
jtf_res.setText("0.
");
}
});
}
¿Público? ¿Obsoleto? init_pan_jtf()?{
jtf _ RES . alineación horizontal(JTextField.right);
jtf_res.setFont(new?Font("Fake Songti",?0,?20));
jtf_res. .setText("0.
");
jtf _ RES . set editable(false);
//?jtf _ RES . setfocusable(false);
pan_jtf.setSize( 420,? 40);
pan_jtf.setLocation(10,?5);
pan_jtf.setLayout(new?BorderLayout());
pan _ jtf . add(jtf _ RES);
}
Init_pan_mem()? {
pan_mem.setSize(60,?270);
pan_mem.setLocation(10,?60);
pan_mem.setLayout(new?GridLayout(5,1,?0,?5));
pan_mem.add (BTN_mem);
BTN_mem.set habilitado(false);
pan_mem.add(BTN_MC);
pan_mem add(BTN_Mr)
pan_mem.add(BTN_ms);
pan_mem.add(BTN_m);
}
<. p>Init_pan_num()? {pan_num.setSize(340,?220);
pan_num .setLocation(85,?110);
pan_num. setLayout(new?GridLayout(4,5,?5,?5));
pan_num.add(BTN _ 7);
pan _ num . );
pan_num.add(BTN_9);
pan_num.add(BTN_div); (BTN _ sqrt);
pan _ num . _ num . agregar(BTN _ 6);
pan _ num . agregar(BTN _ multi
p>pan _ num . p>
pan_num.add(BTN_1);
pan_num.add(BTN_2);
pan_num.
pan_num.add(BTN_sub);
pan_num.add(BTN_x);
pan_num.add(BTN_0);
pan_num.add(BTN_flag);
pan_num.add(BTN_point);
pan_num.add(BTN_add);
pan _ num .
);
BTN_1. addactionlistener(este);
BTN_2. addactionlistener(este);
BTN_3. >BTN_4. addactionlistener(este);
BTN_5. addactionlistener(este);
BTN_6. addactionlistener(este);
BTN_5. BTN_7. addactionlistener(este);
BTN_8. addactionlistener(este);
BTN_9. addactionlistener(este);
BTN _ 0 .
BTN _ sub . addactionlistener(this);
BTN _ multi . addactionlistener(this);
BTN _ div. /p>
BTN _ add . addactionlistener(this);
BTN _ sqrt . addactionlistener(this); BTN _ x . >
BTN _ RES . addactionlistener(this);
BTN _ point . addactionlistener(this);
BTN _ addactionlistener(this);
//?BTN _ mod . addactionlistener(this);
}
@override
¿Público? ¿Vacío? ¿Acción realizada (Evento de acción? E)? {
¿Cadena? ¿s? =?e .getactioncommand();
¿Grandecimal? ¿I? =?¿Nuevo? BigDecimal(1);
¿Cadena? ¿Trabajador temporal? =?jtf_res.getText().
trim();
¿Grandecimal? temp1? =?¿Nuevo? BigDecimal(temp);
¿Si? (e.getSource()?==?btn_flag)? {
¿Gran Decimal? temp3? =?¿Nuevo? BigDecimal(jtf _ RES . gettext());
¿BigDecimal? temp4? =?¿Nuevo? GranDecimal(-1);
¿GranDecimal? temp5? =?temp 3 . multiplicar(temp 4);
jtf_res.setText("? ?temp 5);
}? ¿De lo contrario? ¿Qué pasa si? (s.equals("1 /x "))?{
jtf_res.setText("? ?i.divide(temp1, new? contexto matemático(30)));
}? ¿si? (s.equals ("sqrt"))? {
jtf_res.setText("? ?temp 1 . multiplicar(temp 1));
}? ¿De lo contrario? ¿Y si? (s . es igual a(" ")? {
str . setlength(0);
¿Si? (currentOp?==?0)?{
¿Preparación preoperatoria? =?currentOp?1;
op2? =?New? BigDecimal(" 0 ");
jtf_res.setText("? ?op 1);
}?De lo contrario, ¿qué? {
currentOp? =?preOp
¿Preparación preoperatoria?
¿Cambiar? >Caso 1:
op1?=?op 1 . add(op2);
jtf_res.setText("?op 1);
Rotura;
Caso? 2:
op1? =?op 1. restar(op2);
jtf_res.setText("?op 1);
Pausa;
Caso 3: p>
op1? =?op 1. multiplicar(op2);
jtf_res.setText(" ?op 1);
Romper;
Caso ?4:
op1? =?op1.divide(op2, nuevo ?contexto matemático(30 ));
jtf_res.setText("? ?op 1); p>
Descanso;
}
}
}? ¿Y si? (s. es igual a("-")?{
str.setlength(0);
¿Qué pasa si?(currentOp?==? 0)?{
¿Preparación preoperatoria? =?currentOp =?2;
p>jtf_res.setText("? ?op 1);
}? ¿En caso contrario? {
currentOp? =?preOp
¿Preparación preoperatoria?
¿Cambiar? p>Caso? 1:
op1? =?op 1. add(op2);
jtf_res
.setText("? ?op 1);
Rotura;
Caso? 2:
op1?=?op 1 . restar(op2);
jtf_res.setText("? ?op 1);
Rotura;
¿Caso? 3:
op1? =?op 1 . multiplicar(op2);
jtf_res.setText("?op 1);
Romper;
Caso?4:
p>op1? =?op1.divide(op2, new?contexto matemático(30));
jtf_res.setText("? ?op 1);
¿Romper;
}
}
}? ¿si? (s.equals("* "))? {
str .setlength(0);
¿Si? (currentOp?==?0)?{
¿Preparación preoperatoria? =?operación actual? =?3;
jtf_res.setText("? ?op 1);
}? ¿De lo contrario? {
currentOp?=?preOp
¿Preparación preoperatoria? =?3;
¿Cambiar? {
Caso 1:
op1? p>jtf_res.setText("? ?op 1);
Rotura;
¿Caso? 2:
op1? =?op 1 . restar(op2);
jtf_res.setText("?op 1);
Romper;
Caso?3:
p>op1? =?op 1 . multiplicar(op2);
jtf_res.setText("?op 1);
Romper;
¿Caso? 4:
op1? =?op1.divide(op2, new?math context(30));
jtf_res.setText("?op1);
Pausa;
}
}
}? ¿Y si? (s.equals("/")?{
str . setlength(0);
Si? (currentOp?==?0)?{
¿Preparación preoperatoria? =?currentOp?=?4;
jtf_res.setText(" ?op 1);
}?{
currentOp? =?preOp
¿Preparación preoperatoria?
¿Cambiar? . add(op2);
jtf_res.setText ("? ?op 1);
Rotura;
Caso? 2:
op1?=?op 1. restar(op2);
jtf_res.setText("?op 1);
Romper;
Caso?3:
op1?=?op 1. multiplicar (op2);
jtf_res.setText
("? ?op 1);
Pausa;
Caso ?4:
op1?=?op1.divide(op2, new?contexto matemático ( 30));
jtf_res.setText("? ?op 1);
Pausa;
}
} p >
}? ¿si? (s.equals("= ")?{
¿Si?(currentOp?==?0)?{
str . setlength(0);
jtf_res.setText("? ?op2);
}? ¿En caso contrario? {
str . setlength(0);
currentOp?=?preOp
¿Cambiar? {
Caso 1:
op1?
jtf_res.setText("?op 1);
Romper;
Caso?2:
op1?=?op 1. restar(op2);
jtf_res.setText("?op 1) ;
Romper;
Caso?3:
op1?=? op 1. multiplicar(op2);
jtf_res.setText ("? ?op 1);
Pausa;
Caso? 4:
op1? =?op1.divide(op2, new?contexto matemático( 30));
jtf_res.setText("??op 1);
Pausa;
}
currentOp? =? 0;
op2?=?New?BigDecimal(" 0 ");
}
}? ¿Qué pasa si (s es igual a (".") )?{
esBigDecimal? =?True;
Si? getText().indexOf(".")?! ¿Qué pasa si (jtf_res.getText(). trim(). igual a (" 0 "))? {
str . str.append( "0 "? ?s));
}? ¿Y si? (jtf_res.getText().Equals(" ")?
}? ¿De lo contrario? {
jtf_res.setText((str.append(s)).toString());
}
}
} ¿De lo contrario? ¿si? (s.equals("0 "))? {
¿Y si? (jtf_res.getText(). trim(). igual a ("0."))?{
}? {
jtf_res.setText(str.append(s)). toString());
op2? =?¿Nuevo? BigDecimal(jtf_res.getText().
trim());
}
} ¿De lo contrario? {
jtf_res.setText(str.append(s)). toString());
op2? =?¿Nuevo? BigDecimal(jtf_res.getText().trim());
¿Si? (op.actual?==?0)
op1? =?op2
}
}
}