``#问:java编写的计算器窗口卡住,大神请解答下
大二生一枚,老师要求我们编写一个计算器图形界面,实现计算器的加减乘除,在编程完后遇到一些问题,计算器界面点一个按钮之后界面卡住,没有反应,上网查了后觉得有可能是空间占用的问题,但是试着改了下发现还是没有改变结果,实在是不知道哪里有问题了,听别的大神说markdown编写程序非常方便,自己就试着用markdown写了下自己计算器的程序,试着问问哪里出了问题,请大神解答下。
'''java
package demo05;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Calculator implements ActionListener{
GridLayout layout;
JButton button1,button2,button3,button4,button5,button6,button7,button8,button9,button10,button11,button12,button13,button14,button15,button16;
JSplitPane jsp;
JFrame frame;
// JTextArea area;
JPanel pane1,pane2;
JTextField jtf;
public Calculator(){
frame=new JFrame("计算器");
frame.setSize(new Dimension(400,600));
layout=new GridLayout(4,4);
pane1=new JPanel(layout);
jtf=new JTextField("标准");
jtf.setBounds(0, 0, 400, 200);
button1=new JButton("7");
button2=new JButton("8");
button3=new JButton("9");
button4=new JButton("/");
button5=new JButton("4");
button6=new JButton("5");
button7=new JButton("6");
button8=new JButton("*");
button9=new JButton("1");
button10=new JButton("2");
button11=new JButton("3");
button12=new JButton("+");
button13=new JButton(".");
button14=new JButton("0");
button15=new JButton("=");
button16=new JButton("-");
pane1.add(button1);
pane1.add(button2);
pane1.add(button3);
pane1.add(button4);
pane1.add(button5);
pane1.add(button6);
pane1.add(button7);
pane1.add(button8);
pane1.add(button9);
pane1.add(button10);
pane1.add(button11);
pane1.add(button12);
pane1.add(button13);
pane1.add(button14);
pane1.add(button15);
pane1.add(button16);
jsp=new JSplitPane(JSplitPane.VERTICAL_SPLIT,jtf,pane1);
frame.add(jsp);
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(this);
button5.addActionListener(this);
button6.addActionListener(this);
button7.addActionListener(this);
button8.addActionListener(this);
button9.addActionListener(this);
button10.addActionListener(this);
button11.addActionListener(this);
button12.addActionListener(this);
button13.addActionListener(this);
button14.addActionListener(this);
button15.addActionListener(this);
button16.addActionListener(this);
jtf.addActionListener(this);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent event) {
Object obj=event.getSource();
if(obj instanceof JButton){
JButton button=(JButton)obj;
while(button14==button){
if(jtf.getText().equals("0")){
jtf.requestFocus();
}
else{
String str=jtf.getText();
jtf.setText(str+"0");
}
}
while(button9==button){
if(jtf.getText().equals("0")){
jtf.setText("");
jtf.setText("1");
jtf.requestFocus();
}
else{
String str=jtf.getText();
jtf.setText(str+"1");
}
}
while(button10==button){
if(jtf.getText().equals("0")){
jtf.setText("");
jtf.setText("2");
jtf.requestFocus();
}
else{
String str=jtf.getText();
jtf.setText(str+"2");
}
}
while(button11==button){
if(jtf.getText().equals("0")){
jtf.setText("");
jtf.setText("3");
jtf.requestFocus();
}
else{
String str=jtf.getText();
jtf.setText(str+"3");
}
}
while(button5==button){
if(jtf.getText().equals("0")){
jtf.setText("");
jtf.setText("4");
jtf.requestFocus();
}
else{
String str=jtf.getText();
jtf.setText(str+"4");
}
}
while(button6==button){
if(jtf.getText().equals("0")){
jtf.setText("");
jtf.setText("5");
jtf.requestFocus();
}
else{
String str=jtf.getText();
jtf.setText(str+"5");
}
}
while(button7==button){
if(jtf.getText().equals("0")){
jtf.setText("");
jtf.setText("6");
jtf.requestFocus();
}
else{
String str=jtf.getText();
jtf.setText(str+"6");
}
}
while(button1==button){
if(jtf.getText().equals("0")){
jtf.setText("");
jtf.setText("7");
jtf.requestFocus();
}
else{
String str=jtf.getText();
jtf.setText(str+"7");
}
}
while(button2==button){
if(jtf.getText().equals("0")){
jtf.setText("");
jtf.setText("8");
jtf.requestFocus();
}
else{
String str=jtf.getText();
jtf.setText(str+"8");
}
}
while(button3==button){
if(jtf.getText().equals("0")){
jtf.setText("");
jtf.setText("9");
jtf.requestFocus();
}
else{
String str=jtf.getText();
jtf.setText(str+"9");
}
}
while(button13==button){
if(jtf.getText().equals("0")){
jtf.setText("");
jtf.setText(".");
jtf.requestFocus();
}
else{
String str=jtf.getText();
jtf.setText(str+".");
}
}
while(button12==button){
if(jtf.getText().equals("0")){
jtf.setText("");
jtf.setText("+");
jtf.requestFocus();
}
else{
String str=jtf.getText();
jtf.setText(str+"+");
}
}
while(button16==button){
if(jtf.getText().equals("0")){
jtf.setText("");
jtf.setText("-");
jtf.requestFocus();
}
else{
String str=jtf.getText();
jtf.setText(str+"-");
}
}
while(button8==button){
if(jtf.getText().equals("0")){
jtf.setText("");
jtf.setText("*");
jtf.requestFocus();
}
else{
String str=jtf.getText();
jtf.setText(str+"*");
}
}
while(button4==button){
if(jtf.getText().equals("0")){
jtf.setText("");
jtf.setText("/");
jtf.requestFocus();
}
else{
String str=jtf.getText();
jtf.setText(str+"/");
}
}
while(button13==button){
if(jtf.getText().equals("0")){
jtf.setText("");
jtf.setText(".");
jtf.requestFocus();
}
else{
String str=jtf.getText();
jtf.setText(str+".");
}
}
//等号实现加减乘除功能
while(button15==button){
if(jtf.getText().indexOf("-")!=-1){
//将字符串拆分为字符
String[] str=jtf.getText().split("/+");
Double d1=Double.parseDouble(str[0]);
Double d2=Double.parseDouble(str[1]);
double result=d1+d2;
String str1=String.valueOf(result);
jtf.setText(str1);
}
//减法运算
if(jtf.getText().indexOf("-")!=-1){
jtf.setText("");
//将字符串拆分为字符
String[] str=jtf.getText().split("/-");
Double d1=Double.parseDouble(str[0]);
Double d2=Double.parseDouble(str[1]);
double result=d1-d2;
String str1=String.valueOf(result);
jtf.setText(str1);
}
//乘法运算
if(jtf.getText().indexOf("*")!=-1){
jtf.setText("");
//将字符串拆分为字符
String[] str=jtf.getText().split("/*");
Double d1=Double.parseDouble(str[0]);
Double d2=Double.parseDouble(str[1]);
double result=d1*d2;
String str1=String.valueOf(result);
jtf.setText(str1);
}
if(jtf.getText().indexOf("/")!=-1){
//将字符串拆分为字符
String[] str=jtf.getText().split("/");
Double d1=Double.parseDouble(str[0]);
Double d2=Double.parseDouble(str[1]);
double result=d1/d2;
String str1=String.valueOf(result);
jtf.setText(str1);
}
else{
jtf.setText("请选择要进行的运算");
}
}
}
}
public static void main(String[] args){
new Calculator();
}
}
''''</br>