java計算器awt原理(jwt中的算法)

本文目錄一覽:

JAVA中AWT本質是什麼?

你好,這是一些用於GUI類封裝起來的一個包,主要是在AWT包中的,作為一個重量級的GUI編輯,不同於SWING包下的一些輕量級的類。只有你在運用這些類的時候,導入包的時候才可以使用。裏面給你封裝了很多界面的組件,例如窗體,面板,按鈕等。也包括一些布局的方式。但是它由於不是輕量級的組件,所以開發比較耗時,而且平台的局限性也比較大。希望能幫到你。

JAVA編程題(AWT計算器)

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.border.*;

import java.util.LinkedList; //工具包

import java.text.NumberFormat; //文本包

public class Calculator extends Frame implements ActionListener //計算器類

{

JTextField result;

NumberButton numberButton[];

OperatorButton operatorButton[];

Button radixpoint,positiveminus,backspace,reciprocal,equal,clear; //聲明成員變量

//小數點按鈕,正負號按鈕,退格按鈕,求倒數按鈕,等號按鈕,清零按鈕

Panel panel;

String operator[]={“+”,”-“,”*”,”/”};

LinkedList linklist;

boolean pressequal=false;

public Calculator() //構造方法

{

super(“計算器”);

linklist=new LinkedList();

numberButton=new NumberButton[10];

for(int i=0;i=9;i++)

{

numberButton[i]=new NumberButton(i);

numberButton[i].addActionListener(this);

}

operatorButton=new OperatorButton[4];

for(int i=0;i4;i++)

{

operatorButton[i]=new OperatorButton(operator[i]);

operatorButton[i].addActionListener(this);

}

radixpoint=new Button(“.”);

positiveminus=new Button(“+/-“);

backspace=new Button(“CE”);

reciprocal=new Button(“1/x”);

equal=new Button(“=”);

clear=new Button(“C”);

radixpoint.setForeground(Color.red);

positiveminus.setForeground(Color.red);

backspace.setForeground(Color.red);

reciprocal.setForeground(Color.red);

equal.setForeground(Color.red);

clear.setForeground(Color.red);

radixpoint.addActionListener(this);

positiveminus.addActionListener(this);

backspace.addActionListener(this);

reciprocal.addActionListener(this);

equal.addActionListener(this);

clear.addActionListener(this);

result=new JTextField(10);

result.setHorizontalAlignment(JTextField.RIGHT);

result.setForeground(Color.black);

result.setBackground(Color.white);

result.setFont(new Font(“TimesRoman”,Font.PLAIN,14));

result.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));

result.setEditable(false);

panel=new Panel();

panel.setLayout(new GridLayout(4,5));

panel.add(numberButton[1]);

panel.add(numberButton[2]);

panel.add(numberButton[3]);

panel.add(backspace);

panel.add(clear);

panel.add(numberButton[4]);

panel.add(numberButton[5]);

panel.add(numberButton[6]);

panel.add(operatorButton[0]);

panel.add(operatorButton[2]);

panel.add(numberButton[7]);

panel.add(numberButton[8]);

panel.add(numberButton[9]);

panel.add(operatorButton[1]);

panel.add(operatorButton[3]);

panel.add(numberButton[0]);

panel.add(positiveminus);

panel.add(reciprocal);

panel.add(radixpoint);

panel.add(equal);

add(result,”North”);

add(panel,”Center”);

addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

System.exit(0);

}

});

setSize(270,200);

setLocation(300,230);

setVisible(true);

}

public void actionPerformed(ActionEvent e) //按鈕的單擊事件處理方法

{

if(e.getSource() instanceof NumberButton) //數字按鈕

{

NumberButton b=(NumberButton)e.getSource();

if(linklist.size()==0)

{

int number=b.getNumber();

linklist.add(“”+number);

result.setText(“”+number);

pressequal=false;

}

else if(linklist.size()==1pressequal==false)

{

int number=b.getNumber();

String num=(String)linklist.getFirst();

String s=num.concat(“”+number);

linklist.set(0,s);

result.setText(s);

}

else if(linklist.size()==1pressequal==true)

{

int number=b.getNumber();

linklist.removeFirst();

linklist.add(“”+number);

pressequal=false;

result.setText(“”+number);

}

else if(linklist.size()==2)

{

int number=b.getNumber();

linklist.add(“”+number);

result.setText(“”+number);

}

else if(linklist.size()==3)

{

int number=b.getNumber();

String num=(String)linklist.getLast();

String s=num.concat(“”+number);

linklist.set(2,s);

result.setText(s);

}

}

else if(e.getSource() instanceof OperatorButton) //操作按鈕

{

OperatorButton b=(OperatorButton)e.getSource();

if(linklist.size()==1)

{

String fuhao=b.getOperator();

linklist.add(fuhao);

}

else if(linklist.size()==2)

{

String fuhao=b.getOperator();

linklist.set(1,fuhao);

}

else if(linklist.size()==3)

{

String fuhao=b.getOperator();

String number1=(String)linklist.getFirst();

String number2=(String)linklist.getLast();

String operator=(String)linklist.get(1);

try

{

double n1=Double.parseDouble(number1);

double n2=Double.parseDouble(number2);

double n=0;

if(operator.equals(“+”))

{

n=n1+n2;

}

else if(operator.equals(“-“))

{

n=n1-n2;

}

else if(operator.equals(“*”))

{

n=n1*n2;

}

else if(operator.equals(“/”))

{

n=n1/n2;

}

linklist.clear();

linklist.add(“”+n);

linklist.add(fuhao);

result.setText(“”+n);

}

catch(Exception ee)

{

}

}

}

else if(e.getSource()==equal) //等號按鈕

{

pressequal=true;

if(linklist.size()==1||linklist.size()==2)

{

String num=(String)linklist.getFirst();

result.setText(“”+num);

}

else if(linklist.size()==3)

{

String number1=(String)linklist.getFirst();

String number2=(String)linklist.getLast();

String operator=(String)linklist.get(1);

try

{

double n1=Double.parseDouble(number1);

double n2=Double.parseDouble(number2);

double n=0;

if(operator.equals(“+”))

{

n=n1+n2;

}

else if(operator.equals(“-“))

{

n=n1-n2;

}

else if(operator.equals(“*”))

{

n=n1*n2;

}

else if(operator.equals(“/”))

{

n=n1/n2;

}

result.setText(“”+n);

linklist.set(0,””+n);

linklist.removeLast();

linklist.removeLast();

}

catch(Exception ee)

{

}

}

}

else if(e.getSource()==radixpoint) //小數點按鈕

{

if(linklist.size()==0)

{

pressequal=false;

}

else if(linklist.size()==1)

{

String dot=radixpoint.getLabel();

String num=(String)linklist.getFirst();

String s=null;

if(num.indexOf(dot)==-1)

{

s=num.concat(dot);

linklist.set(0,s);

}

else

{

s=num;

}

linklist.set(0,s);

result.setText(s);

}

else if(linklist.size()==3)

{

String dot=radixpoint.getLabel();

String num=(String)linklist.getLast();

String s=null;

if(num.indexOf(dot)==-1)

{

s=num.concat(dot);

linklist.set(2,s);

}

else

{

s=num;

}

result.setText(s);

}

}

else if(e.getSource()==backspace) //退格按鈕

{

if(linklist.size()==1)

{

String num=(String)linklist.getFirst();

if(num.length()=1)

{

num=num.substring(0,num.length()-1);

linklist.set(0,num);

result.setText(num);

}

else

{

linklist.removeLast();

result.setText(“0”);

}

}

else if(linklist.size()==3)

{

String num=(String)linklist.getLast();

if(num.length()=1)

{

num=num.substring(0,num.length()-1);

linklist.set(2,num);

result.setText(num);

}

else

{

linklist.removeLast();

result.setText(“0”);

}

}

}

else if(e.getSource()==positiveminus) //正負號按鈕

{

if(linklist.size()==1)

{

String number1=(String)linklist.getFirst();

try

{

double d=Double.parseDouble(number1);

d=-1*d;

String str=String.valueOf(d);

linklist.set(0,str);

result.setText(str);

}

catch(Exception ee)

{

}

}

else if(linklist.size()==3)

{

String number2=(String)linklist.getLast();

try

{

double d=Double.parseDouble(number2);

d=-1*d;

String str=String.valueOf(d);

linklist.set(2,str);

result.setText(str);

}

catch(Exception ee)

{

}

}

}

else if(e.getSource()==reciprocal) //求倒數按鈕

{

if(linklist.size()==1||linklist.size()==2)

{

String number1=(String)linklist.getFirst();

try

{

double d=Double.parseDouble(number1);

d=1.0/d;

String str=String.valueOf(d);

linklist.set(0,str);

result.setText(str);

}

catch(Exception ee)

{

}

}

else if(linklist.size()==3)

{

String number2=(String)linklist.getLast();

try

{

double d=Double.parseDouble(number2);

d=1.0/d;

String str=String.valueOf(d);

linklist.set(0,str);

result.setText(str);

}

catch(Exception ee)

{

}

}

}

else if(e.getSource()==clear) //清零按鈕

{

pressequal=false;

result.setText(“0”);

linklist.clear();

}

}

public static void main(String args[])

{

new Calculator();

}

}

class NumberButton extends Button //數字按鈕類

{

int number;

public NumberButton(int number) //構造方法

{

super(“”+number);

this.number=number;

setForeground(Color.blue);

}

public int getNumber()

{

return number;

}

}

class OperatorButton extends Button //運算符號按鈕類

{

String operator;

public OperatorButton(String operator) //構造方法

{

super(operator);

this.operator=operator;

setForeground(Color.red);

}

public String getOperator()

{

return operator;

}

}

java AWT 是什麼?謝謝誒

AWT(Abstract Windowing Toolkit),中文譯為抽象窗口工具包,是Java提供的用來建立和設置Java的圖形用戶界面的基本工具。AWT由Java中的java.awt包提供,裏面包含了許多可用來建立與平台無關的圖形用戶界面(GUI)的類,這些類又被稱為組件(components)

Java中AWT事件模型的概念求大神幫助

awt事件模型就是根據你出發的事件來執行相應的業務響應代碼,,先設定事件源,然後綁定到事件監聽器上,在事件監聽器里寫上業務代碼,當你出發事件源時就會觸發這個監聽器執行里的代碼

用java實現一個簡單的計算器。

/*

* @(#)JCalculator.java 1.00 06/17/2015

*/

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

/**

* A simple calculator program.

* pI saw this program in a QQ group, and help a friend correct it./p

*

* @author Singyuen Yip

* @version 1.00 12/29/2009

* @see JFrame

* @see ActionListener

*/

public class JCalculator extends JFrame implements ActionListener {

/**

* Serial Version UID

*/

private static final long serialVersionUID = -169068472193786457L;

/**

* This class help close the Window.

* @author Singyuen Yip

*

*/

private class WindowCloser extends WindowAdapter {

public void windowClosing(WindowEvent we) {

System.exit(0);

}

}

int i;

// Strings for Digit Operator buttons.

private final String[] str = { “7”, “8”, “9”, “/”, “4”, “5”, “6”, “*”,”1″,

“2”, “3”, “-“, “.”, “0”, “=”, “+” };

// Build buttons.

JButton[] buttons = new JButton[str.length];

// For cancel or reset.

JButton reset = new JButton(“CE”);

// Build the text field to show the result.

JTextField display = new JTextField(“0”);

/**

* Constructor without parameters.

*/

public JCalculator() {

super(“Calculator”);

// Add a panel.

JPanel panel1 = new JPanel(new GridLayout(4, 4));

// panel1.setLayout(new GridLayout(4,4));

for (i = 0; i  str.length; i++) {

buttons[i] = new JButton(str[i]);

panel1.add(buttons[i]);

}

JPanel panel2 = new JPanel(new BorderLayout());

// panel2.setLayout(new BorderLayout());

panel2.add(“Center”, display);

panel2.add(“East”, reset);

// JPanel panel3 = new Panel();

getContentPane().setLayout(new BorderLayout());

getContentPane().add(“North”, panel2);

getContentPane().add(“Center”, panel1);

// Add action listener for each digit operator button.

for (i = 0; i  str.length; i++)

buttons[i].addActionListener(this);

// Add listener for “reset” button.

reset.addActionListener(this);

// Add listener for “display” button.

display.addActionListener(this);

// The “close” button “X”.

addWindowListener(new WindowCloser());

// Initialize the window size.

setSize(800, 800);

// Show the window.

// show(); Using show() while JDK version is below 1.5.

setVisible(true);

// Fit the certain size.

pack();

}

public void actionPerformed(ActionEvent e) {

Object target = e.getSource();

String label = e.getActionCommand();

if (target == reset)

handleReset();

else if (“0123456789.”.indexOf(label) 0)

handleNumber(label);

else

handleOperator(label);

}

// Is the first digit pressed?

boolean isFirstDigit = true;

/**

* Number handling.

* @param key the key of the button.

*/

public void handleNumber(String key) {

if (isFirstDigit)

display.setText(key);

else if ((key.equals(“.”)) (display.getText().indexOf(“.”) 0))

display.setText(display.getText() + “.”);

else if (!key.equals(“.”))

display.setText(display.getText() + key);

isFirstDigit = false;

}

/**

* Reset the calculator.

*/

public void handleReset() {

display.setText(“0”);

isFirstDigit = true;

operator = “=”;

}

double number = 0.0;

String operator = “=”;

/**

* Handling the operation.

* @param key pressed operator’s key.

*/

public void handleOperator(String key) {

if (operator.equals(“+”))

number += Double.valueOf(display.getText());

else if (operator.equals(“-“))

number -= Double.valueOf(display.getText());

else if (operator.equals(“*”))

number *= Double.valueOf(display.getText());

else if (operator.equals(“/”))

number /= Double.valueOf(display.getText());

else if (operator.equals(“=”))

number = Double.valueOf(display.getText());

display.setText(String.valueOf(number));

operator = key;

isFirstDigit = true;

}

public static void main(String[] args) {

new JCalculator();

}

}

運行界面:

原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/127771.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
簡單一點的頭像簡單一點
上一篇 2024-10-03 23:16
下一篇 2024-10-03 23:16

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python實現爬樓梯算法

    本文介紹使用Python實現爬樓梯算法,該算法用於計算一個人爬n級樓梯有多少種不同的方法。 有一樓梯,小明可以一次走一步、兩步或三步。請問小明爬上第 n 級樓梯有多少種不同的爬樓梯…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發佈。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29

發表回復

登錄後才能評論