📄 sxj.java
字号:
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
import javax.swing.border.*;
public class sxj extends JFrame implements ActionListener
{
private JButton oneJButton, twoJButton, threeJButton,fourJButton, fiveJButton,
sixJButton, sevenJButton, eightJButton, nineJButton, zeroJButton,plusJButton,
minusJButton, timesJButton,divideJButton,equalsJButton,decimalJButton,clearJButton,
fuhaoJButton;
private JTextField displayJTextField;
String s="",t="",m="";/*s:用来存储文本框中的值;t:用来存储中间值,以备计算m:存储+,-*,/;*/
boolean key=true;/*判断是否按过小数点*/
int a[]={0,0,0,0};
public sxj()
{
createUserInterface();
}
private void createUserInterface()
{
Container contentPane = getContentPane();
contentPane.setBackground(Color.GRAY);
contentPane.setLayout( null );
displayJTextField = new JTextField();
displayJTextField.setText( "0." );
displayJTextField.setBounds( 15, 15, 225, 24 );
displayJTextField.setHorizontalAlignment( JTextField.RIGHT );
displayJTextField.setEditable(false);
contentPane.add( displayJTextField );
oneJButton = new JButton();
oneJButton.setText( "1" );
oneJButton.setBounds( 15,50,45,40);
contentPane.add(oneJButton);
twoJButton = new JButton();
twoJButton.setText( "2" );
twoJButton.setBounds( 75,50,45,40);
contentPane.add(twoJButton);
threeJButton = new JButton();
threeJButton.setText( "3" );
threeJButton.setBounds( 135,50,45,40);
contentPane.add(threeJButton);
plusJButton = new JButton();
plusJButton.setText( "+" );
plusJButton.setBounds( 195,50,45,40);
contentPane.add(plusJButton);
fourJButton = new JButton();
fourJButton.setText( "4" );
fourJButton.setBounds( 15,100,45,40);
contentPane.add(fourJButton);
fiveJButton = new JButton();
fiveJButton.setText( "5" );
fiveJButton.setBounds( 75,100,45,40);
contentPane.add(fiveJButton);
sixJButton = new JButton();
sixJButton.setText( "6" );
sixJButton.setBounds( 135,100,45,40);
contentPane.add(sixJButton);
minusJButton = new JButton();
minusJButton.setText( "-" );
minusJButton.setBounds( 195,100,45,40);
contentPane.add(minusJButton);
sevenJButton = new JButton();
sevenJButton.setText( "7" );
sevenJButton.setBounds( 15,150,45,40);
contentPane.add(sevenJButton);
eightJButton = new JButton();
eightJButton.setText( "8" );
eightJButton.setBounds( 75,150,45,40);
contentPane.add(eightJButton);
nineJButton = new JButton();
nineJButton.setText( "9" );
nineJButton.setBounds( 135,150,45,40);
contentPane.add(nineJButton);
timesJButton = new JButton();
timesJButton.setText( "*" );
timesJButton.setBounds( 195,150,45,40);
contentPane.add(timesJButton);
zeroJButton = new JButton();
zeroJButton.setText( "0" );
zeroJButton.setBounds( 15,200,45,40);
contentPane.add(zeroJButton);
decimalJButton = new JButton();
decimalJButton.setText( "." );
decimalJButton.setBounds( 75,200,45,40);
contentPane.add(decimalJButton);
clearJButton = new JButton();
clearJButton.setText( "C" );
clearJButton.setBounds( 135,200,45,40);
contentPane.add(clearJButton);
divideJButton = new JButton();
divideJButton.setText( "/" );
divideJButton.setBounds( 195,200,45,40);
contentPane.add(divideJButton);
equalsJButton = new JButton();
equalsJButton.setText( "=" );
equalsJButton.setBounds( 105,250,135,40);
contentPane.add(equalsJButton);
fuhaoJButton = new JButton();
fuhaoJButton.setText( "+/-" );
fuhaoJButton.setBounds( 15,250,70,40);
contentPane.add(fuhaoJButton);
setTitle( "计算器" );
setSize( 265, 335 );
setVisible( true );
oneJButton.addActionListener(this);
twoJButton.addActionListener(this);
threeJButton.addActionListener(this);
fourJButton.addActionListener(this);
fiveJButton.addActionListener(this);
sixJButton.addActionListener(this);
sevenJButton.addActionListener(this);
eightJButton.addActionListener(this);
nineJButton.addActionListener(this);
zeroJButton.addActionListener(this);
plusJButton.addActionListener(this);
minusJButton.addActionListener(this);
timesJButton.addActionListener(this);
divideJButton.addActionListener(this);
equalsJButton.addActionListener(this);
decimalJButton.addActionListener(this);
clearJButton.addActionListener(this);
fuhaoJButton.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
try {
if(e.getSource()==oneJButton)
xianshi( "1");
else if(e.getSource()==twoJButton)
xianshi("2");
else if(e.getSource()==threeJButton)
xianshi("3");
else if(e.getSource()==fourJButton)
xianshi("4");
else if(e.getSource()==fiveJButton)
xianshi("5");
else if(e.getSource()==sixJButton)
xianshi("6");
else if(e.getSource()==sevenJButton)
xianshi("7");
else if(e.getSource()==eightJButton)
xianshi("8");
else if(e.getSource()==nineJButton)
xianshi("9");
else if(e.getSource()==zeroJButton)
xianshi("0");
else if(e.getSource()==clearJButton)
{
displayJTextField.setText( "0.");
s="";
t="";
m="";
key=true;}
else if(e.getSource()==decimalJButton)
if(key&&!displayJTextField.getText().equals("0.")&&!displayJTextField.getText().equals("0"))
{xianshi(".");
key=false;
}
else
{
if(displayJTextField.getText().equals("0.")||displayJTextField.getText().equals("0"))
{ s="";
xianshi("0.");
key=false;}
}
else if(e.getSource()==fuhaoJButton)
{
String m;
char d;
m=displayJTextField.getText();
d=m.charAt(0);
if(d=='-'&&!displayJTextField.getText().equals("0."))
{
displayJTextField.setText(m.substring(1,m.length()));
s=displayJTextField.getText();}
else
{
if(!displayJTextField.getText().equals("0."))
{displayJTextField.setText("-"+displayJTextField.getText());
s=displayJTextField.getText();}
else
{displayJTextField.setText("-");
s=displayJTextField.getText();}
}
}
else if(e.getSource()==plusJButton)
{
panduanfudian();s="";t=displayJTextField.getText();m="+";
}
else if(e.getSource()==minusJButton)
{
panduanfudian();s="";t=displayJTextField.getText();m="-";
}
else if(e.getSource()==timesJButton)
{
panduanfudian();s="";t=displayJTextField.getText();m="*";
}
else if(e.getSource()==divideJButton)
{
panduanfudian();s="";t=displayJTextField.getText();m="/";
}
else if(e.getSource()==equalsJButton)
{
panduanfudian();
}
}
catch (Exception event) {
displayJTextField.setText("操作非法");
}
}
public void xianshi(String l)/*向文本框输出*/
{
if(s.equals("0") )
{
displayJTextField.setText( l);
s=String.valueOf(displayJTextField.getText());
}
else
{
displayJTextField.setText(s+l);
s=displayJTextField.getText(); }
}
public void panduanfudian()/* 实现运算*/
{ int b=1,c=1;
for(int i=0;i<s.length();i++)
if(s.charAt(i)=='.')
b=0;
for(int i=0;i<t.length();i++)
if(t.charAt(i)=='.')
c=0;
if(m=="+")
{ if(b==0||c==0)
{
displayJTextField.setText( String.valueOf(
Float.parseFloat( t ) +
Float.parseFloat( s ) ) );
}
else
{
displayJTextField.setText( String.valueOf(
Integer.parseInt( t ) +
Integer.parseInt( s ) ) );
}
}
if(m=="-")
{ if(b==0||c==0)
{
displayJTextField.setText( String.valueOf(
Float.parseFloat( t ) -
Float.parseFloat( s ) ) );
}
else {
displayJTextField.setText( String.valueOf(
Integer.parseInt( t ) -
Integer.parseInt( s ) ) );
}
}
if(m=="*")
{ if(b==0||c==0)
{
displayJTextField.setText( String.valueOf(
Float.parseFloat( t ) *
Float.parseFloat( s ) ) );
}
else {
displayJTextField.setText( String.valueOf(
Integer.parseInt( t ) *
Integer.parseInt( s ) ) );
}}
if(m=="/")
{
if(b==1&&c==1&&Integer.parseInt( t ) %Integer.parseInt( s )==0 )
{
displayJTextField.setText( String.valueOf(
Integer.parseInt( t ) /
Integer.parseInt( s ) ) );
}
else {
displayJTextField.setText( String.valueOf(
Float.parseFloat( t ) /
Float.parseFloat( s ) ) );
}
}
}
public static void main( String[] args )
{
sxj application=new sxj();
application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -