패널 및 그리드 레이아웃을 사용하여 텍스트 상자, 숫자 버튼 10개(0~9), 더하기, 빼기, 곱하기 및 나누기 버튼 4개, 등호 버튼, 지우기 버튼 및 사각형을 추가하여 계산기를 시뮬레이션하는 애플리케이션을 작성합니다. 백스페이스 버튼인 루트 버튼을 사용하려면 계산식과 결과가 텍스트 상자에 표시되어야 하며 그 효과는 아래 그림과 같습니다.
Java 단순 계산기 코드:
import javax.swing.*; import java.awt.*; import java.lang.*; import java.awt.Color; ActionListener { private JPanel p1 = new JPanel(); //패널 만들기 private JPanel p2 = new JPanel(); t1; //텍스트 상자 1은 입력 정보를 표시하는 데 사용됩니다. private JTextField t2; //텍스트 상자 2는 결과 정보를 표시하는 데 사용됩니다. private JLabel label; //표시 화면에 표시되는 문자열입니다. ,y ; //x와 y는 모두 피연산자입니다. int z; //Z는 클릭된 연산자를 나타냅니다. 0은 "+"를 나타내고, 2는 "*"를 나타내고, 3은 "/"를 나타냅니다. ] = 신규 JButton[12]; //12개의 버튼이 있는 배열 만들기 private JButton b1,b2,b3,b4,b5,b6,b7,b8; //산술 함수 버튼 public Ex5_2() { super("Simple Calculator" ) / /창 이름 컨테이너 c = getContentPane(); //콘텐츠 패널 객체 생성 t1 = new JTextField(30); t1.setEditable(false); //표시만 가능, 편집 불가 t2 = new JTextField(30); t2.setEditable(false); //표시만 가능, 편집 불가 label = new JLabel("Welcome to Xiaowu 에디션 계산기 ^_^o~ 열심히 노력하세요! "); label.setForeground(Color.blue); //빈 문자열 버퍼 생성 str=new StringBuffer(); p2.add(label); //패널에 라벨 추가 p2.add(t2); //패널에 텍스트 상자 추가 p2.add(t1) //패널에 텍스트 상자 추가 p2.setLayout(new GridLayout(4,1) )); //Put 패널 레이아웃은 4행 1열입니다. for(int i=0;i<10;i++) //배열의 0~9번 버튼에 대한 레이블을 설정하고 리스너를 등록합니다. { String s=""+ 나;b[i]= 새로운 JButton(s); b[i].addActionListener(this) } //각 버튼 인스턴스화 b[10]= new JButton("-/+"); b[11]= new JButton("."); = new JButton("/"); b2= new JButton("뒤로"); b3= new JButton("*"); b5= new JButton("+"); b6= new JButton("Sqrt"); b7= new JButton("-"); //버튼 전경색 설정 for(int i=0 ; i<12;i++) { b[i].setForeground(Color.blue) } b1.setForeground(Color.red); b5.setForeground(Color.red); b2.setForeground(Color.blue); b6.setForeground(Color.red); .blue); //패널에 추가 p1.add(b[7]); p1.add(b[9]); p1.add(b2); p1.add(b[5]); 6]); p1.add(b4); p1.add(b[2]); p1.add(b5); p1.add(b[0]); p1.add(b[11]); ;p1.add(b8); p1.setLayout(new GridLayout(4,5,5,5)); //리스너 등록 b[10].addActionListener(this); b[11].addActionListener(this); b2.addActionListener(this); b4.addActionListener(this); ) ); b7.addActionListener(this); //컨텐츠 패널에 패널 추가 c.add(p1); c.setLayout(new FlowLayout()) //순차 레이아웃으로 설정 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 창을 닫으려면 Action setVisible(true); //표시되도록 설정 setResizing(false); //프레임 크기 조정 금지 setSize(400,300); //메인 메소드는 윈도우 생성을 구현합니다. public static void main(String[] args) { Ex5_2 f = new Ex5_2() } //버튼 이벤트 처리 public void actionPerformed(ActionEvent e) { try { if(e.getSource( )==b4) //삭제하려면 "C"를 선택하세요. { t1.setText("0"); //텍스트 상자 지우기 t1.setHorizontalAlignment(JTextField.RIGHT); //텍스트를 오른쪽으로 정렬 str.setLength(0) //새 입력 피연산자를 받을 준비를 위해 문자열 버퍼 지우기} else if(e.getSource ()==b[10])//입력 피연산자가 양수인지 음수인지 선택하려면 "+/-"를 클릭하세요.{ x=Double.parseDouble(t1.getText().trim());//트림 함수는 문자열에서 공백을 제거하는 것입니다 t1.setText(""+(-x)) t1.setHorizontalAlignment(JTextField.RIGHT) ; } else if (e.getSource()==b5)//x와 z 값을 가져오고 y 값을 지우려면 더하기 버튼을 클릭하세요. x=Double.parseDouble(t1.getText().trim()); str.setLength(0); z=0; else if(e.getSource()==b7)//축소하려면 클릭하세요. 버튼은 x와 z의 값을 가져오고 y의 값을 지웁니다. { x=Double.parseDouble(t1.getText().trim()); str.setLength(0); y=0d; z=1; } else if(e.getSource()==b3)//x와 z의 값을 얻고 y의 값을 지우려면 곱하기 버튼을 클릭하세요. =Double.parseDouble(t1.getText().trim()); str.setLength(0) y=0d }; if(e.getSource()==b1)//나누기 버튼을 클릭하여 x와 z의 값을 가져오고 y의 값을 지웁니다.{ x=Double.parseDouble(t1.getText().trim()) str .setLength(0); y=0d; z=3; } else if(e.getSource()==b8)//계산 결과를 출력하려면 등호 버튼을 클릭하세요. 스위치(z) { 사례 0: t1.setText(""+(x+y)); t1.setHorizontalAlignment(JTextField.RIGHT);break; 사례 1: t1.setText(""+(xy)); setHorizontalAlignment(JTextField.RIGHT);break 사례 2: t1.setText(""+(x*y)); t1.setHorizontalAlignment(JTextField.RIGHT);break; 사례 3: t1.setText(""+(x/y)); ;휴식 } } if(e.getSource()==b[11])//소수점을 입력하려면 "." 버튼을 클릭하세요. { if(t1.getText().trim().indexOf('.')!=-1) // 문자열에 이미 소수점이 포함되어 있는지 확인합니다. { } else //소수점이 없는 경우 { if(t1.getText().trim().equals("0"))//처음에 다음과 같이 표시되는 경우 0 { t1.setText(str.append(e.getActionCommand()).toString()); t1.setHorizontalAlignment(JTextField.RIGHT); } else if(t1.getText().trim().equals(""))/ /처음에 비어 있는 것으로 표시되면 아무 작업도 수행하지 않습니다. {} else { t1.setText(str.append(e.getActionCommand()).toString()); t1.setHorizontalAlignment(JTextField.RIGHT) } } y=0d } else if(e.getSource()==b6) // 제곱근 찾기 { x=Double.parseDouble(t1.getText().trim()); { t1.setText("숫자 형식 예외"); t1.setHorizontalAlignment(JTextField.RIGHT); } else { t1.setText(""+Math.sqrt(x)) t1.setHorizontalAlignment(JTextField.RIGHT); .setLength(0); y=0d }; if(e.getSource()==b[0])//숫자 키 "0"이 선택된 경우 { if(t1.getText().trim().equals("0"))//인 경우 표시 화면 표시가 0이면 아무 작업도 수행되지 않습니다. {} else t1.setText(str.append(e.getActionCommand()).toString()); t1.setHorizontalAlignment(JTextField.RIGHT); y=Double.parseDouble(t1.getText().trim()); } else if (e.getSource()==b2) //뒤로 키가 선택되었습니다. t1.getText().trim().equals("0"))//디스플레이에 0이 아닌 것으로 표시되는 경우{ if(str.length()!=1) { t1.setText(str.delete(str.length()-1,str.length()).toString());//범위를 벗어난 문자열 예외가 발생할 수 있습니다. t1.setHorizontalAlignment(JTextField.RIGHT) ; } else { t1.setText("0"); t1.setHorizontalAlignment(JTextField.RIGHT); } } y=Double.parseDouble(t1.getText().trim()); } else { t1.setText(str.append(e.getActionCommand()).toString()) t1.setHorizontalAlignment(JTextField.RIGHT) ; y=Double.parseDouble(t1.getText().trim()); } } } catch(NumberFormatException e1){ t1.setText("숫자 형식 예외") t1.setHorizontalAlignment(JTextField.RIGHT) } catch(StringIndexOutOfBoundsException) e1){t1.setText("문자열 인덱스가 범위를 벗어났습니다."); t1.setHorizontalAlignment(JTextField.RIGHT);} } }작업 렌더링:
이것으로 간단한 Java 계산기 프로그래밍이 완료되었습니다. 이 기사가 모든 사람이 계산기를 작성하도록 영감을 주기를 바랍니다. 이것은 단순한 계산기일 뿐이며 계속해서 계산기의 기능을 향상시킬 수 있습니다.