求一个简单的JAVA小程序,要有图形界面。

求一个简单的JAVA小程序,要有图形界面。,第1张

/计算器/

import javaawt;

import javaxswing;

import javaxswingborder;

import javaawtevent;

public class Calculator implements ActionListener{

JFrame frame;

JPanel panel;

JTextField tfShow;/定义显示文本框/

JButton b1[]=new JButton[10]; /数字按钮/

JButton b2[]=new JButton[6]; / *** 作按钮/

boolean isNumber;/判断是否输入多位数字的变量/

double number;/存储输入数值、显示结果的变量/

double result;/存储中间运算结果的变量/

char operator;/存储当前 *** 作符的成员变量/

public Calculator(){

frame=new JFrame("计算器");

framesetSize(300,300);/指定框架窗口的大小/

framesetResizable(false);/使框架窗口不可改变大小/

JPanel contentPane=(JPanel)framegetContentPane();

contentPanesetBorder(new EmptyBorder(20,20,20,20));/绘制框架的指定大小的空透明边框/

tfShow=new JTextField("0",25);/指定属性的文本域/

tfShowsetHorizontalAlignment(JTextFieldRIGHT);/设置文本域中文本的对齐方式/

isNumber=true;/初始值设置/

number=0;/初始值设置/

result=0;/初始值设置/

operator=' ';/初始值设置/

for(int i=0;i<b1length;i++){

b1[i]=new JButton(IntegertoString(i));/创建数字按钮/

b1[i]setActionCommand(IntegertoString(i));

b1[i]addActionListener(this);

b1[i]setForeground(Colorblue);

}

String bs[]={"/","","-","C","+","="};

for(int i=0;i<b2length;i++){

b2[i]=new JButton(bs[i]);/创建 *** 作按钮/

b2[i]setActionCommand(bs[i]);

b2[i]addActionListener(this);

b2[i]setForeground(Colorred);

}

panel=new JPanel();

panelsetLayout(new GridLayout(4,5));

paneladd(b1[1]);

paneladd(b1[2]);

paneladd(b1[3]);

paneladd(b2[0]);

paneladd(b1[4]);

paneladd(b1[5]);

paneladd(b1[6]);

paneladd(b2[1]);

paneladd(b1[7]);

paneladd(b1[8]);

paneladd(b1[9]);

paneladd(b2[2]);

paneladd(b1[0]);

paneladd(b2[3]);

paneladd(b2[4]);

paneladd(b2[5]);

frameadd(tfShow,BorderLayoutNORTH);/将文本框放置在框架上方/

frameadd(panel,BorderLayoutCENTER);/将装有按钮组的panel放在框架的中心/

framesetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);/设置框架窗口的默认窗口关闭 *** 作/

framesetVisible(true);/设置框架可见/

}

public double getDisplay(){/返回要显示的结果/

return number;

}

public void reDisplay(){/刷新文本域的内容/

tfShowsetText(""+getDisplay());

}

/对输入数字的处理/

public void numberProcess(int num){

if(isNumber&&num!=0){

String s1=IntegertoString(num);

String s2=IntegertoString((int)(thisnumber));

thisnumber=DoubleparseDouble(s2+s1);/对多位数字的处理/

}else{

thisnumber=num;

}

isNumber=true;/输入连续数字(即多位数字)时为真/

}

public void operationProcess(char operator){/根据输入的 *** 作符改变当前 *** 作符/

switch(operator){

case '-':

thisoperator='-';

break;

case '+':

thisoperator='+';

break;

case '':

thisoperator='';

break;

case '/':

thisoperator='/';

break;

}

result=number;

isNumber=false;/输入 *** 作符时表示输入连续数字的标记变量为假/

}

public void clear(){

number=0;

result=0;

}

public void equal(){/计算运算结果/

switch(operator){

case '-':

result=result-number;

break;

case '+':

result=result+number;

break;

case '':

result=resultnumber;

break;

case '/':

result=result/number;

break;

case ' ':

result=number;

break;

}

number=result; /把运算结果赋值给显示变量/

isNumber=false;

operator=' ';

}

public static void main(String args[]){

Calculator cal=new Calculator();/创建计算器/

}

public void actionPerformed(ActionEvent e){

String command=egetActionCommand();/获取按钮激发的 *** 作事件的命令名称/

char c=commandcharAt(0);/将按钮命令名称的第一个字符赋值给一个字符c/

switch(c){

case '1':

case '2':

case '3':

case '4':

case '5':

case '6':

case '7':

case '8':

case '9':

case '0':

int number=IntegerparseInt(command);

numberProcess(number);/输入数字的处理/

break;

case '+':

case '-':

case '':

case '/':

operationProcess(c);/算数运算符的处理/

break;

case '=':equal();break;/计算运算结果/

case 'C':clear();break;/清零/

}

reDisplay(); /在文本域中显示信息/

}

}

这是我做的一个计算器:运行截图

import javaawteventActionEvent;

import javaawteventActionListener;

import javaxswingJButton;

import javaxswingJFrame;

import javaxswingJPanel;

import javaxswingJTextField;

import javaxswingSwingConstants;

import javaxswingborderEmptyBorder;

@SuppressWarnings("serial")

/ 加减乘除计算小程序 ,哥们绝对原创,给你了。浪费我半个小时,有啥问题在问,继续看**/

 public class JiSu extends JFrame {

 private int li=0;

 private String s1="",s2="",s3=""; // s2 + s3得到最后结果

 private JPanel cp1;

 private JTextField t1;                 //    文本框

 private  JButton br[][]=new JButton[4][4]; //二维数组 建立按钮

 private  char text[][]={{'1','2','3','/'},{'4','5','6',''},{'7','8','9','-'},{'0','=','','+'}}; //二维数组 为按钮赋值 和做+-×÷运算判断的字符值

 private boolean ip=false; 

//main 执行 

 public static void main(String[] args) {

     JiSu frame = new JiSu();

     framesetTitle("计算器");

     framesetVisible(true);

 }

 public JiSu() {

  

  setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

  setBounds(100, 100, 305, 243);

  cp1 = new JPanel();

  cp1setBorder(new EmptyBorder(5, 5, 5, 5));

  setContentPane(cp1);

  cp1setLayout(null);

     //文本框

     t1 = new JTextField("");

     t1setHorizontalAlignment(SwingConstantsRIGHT);

     t1setBounds(38, 20, 168, 21);

     cp1add(t1);

     t1setColumns(10);

     //清空

     JButton bt = new JButton("C");

     btaddActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent arg0) {

       t1setText("");

       s1=s2=s3="";

      }

     });

     btsetBounds(213, 19, 46, 23);

     cp1add(bt);

     //4X4 事件按钮

       int x,y=65;//坐标 

    for (int i = 0; i < brlength; i++) {

     x=35;

     for (int j = 0; j < br[i]length; j++) {

      br[i][j] = new JButton(text[i][j]+"");

      br[i][j]setBounds(x, y, 45, 23);

      br[i][j]addActionListener(new M());

      cp1add(br[i][j]);

      x=x+60;

      }

     y=y+33;

     }

 }// 文本框 添加 数字 并判断

private void set(int i,int j){

  

  if (t1getText()equals("")&&getText(i, j)=='') {

   s1="0";

  }

   s1=s1+getText(i, j);

   t1setText(s1);

 }

//[][]的麻烦,直接传递参数获取值 

 private char getText(int i,int j){

  return text[i][j];

 }

 //事件监听器

 class M implements ActionListener{

  

  @Override

  public void actionPerformed(ActionEvent e) {

//循环按钮二维数组得到事件监听 

   for (int i = 0; i < brlength; i++) {

    for (int j = 0; j < br[i]length; j++) {

     s1=t1getText();

     if (egetSource()equals(br[i][j])) {

     if(ip){t1setText(""); s1=""; ip=false;} 

    //switch语句 判断      

       switch (getText(i, j)) {

       case '+':

        count();

        li=1;

        s3=t1getText();        t1setText("");

        break;

       case '-':

        li=2;

        s3=t1getText();        t1setText("");

        break;

       case '':

        li=3;

        s3=t1getText();        t1setText("");

        break;

       case '/':

        li=4;

        s3=t1getText();        t1setText("");

        break;

       case '=':

        s2=t1getText();        

        count();

        break;

       case '':

         if(!t1getText()contains("")){

          set(i,j);

                   }

        break;

       default:

        set(i,j); 

        break;

       }//swich 结束

      

     }//if 事件选择 结束

    }

    

   }

   

  }

   //最终计算方法

  private void count() {

    double i=0,j=0;   

 

   if (s3equals("")) {

    i=0;

   }

   else if(s2equals("")){

    j=0;

    

   }else {

    i=DoubleparseDouble(s3);//字符串转换成double类型 

    j=DoubleparseDouble(s2);    

   }

   if(li==1)

    i=i+j;    t1setText(i+"");

   if(li==2)

    i=i-j;    t1setText(i+"");

   if(li==3)

    i=ij;    t1setText(i+"");

   if(li==4)

    i=i/j;    t1setText(i+"");

    ip=true;//当ip=true 传入事件中,当点击任意按钮,开始新的计算  

  }//计算结尾  

  

 } //监听类块 结尾

 

 

 

}//程序结尾

/

/

import javaawt;

import javaawtevent;

import javaxswing;

import javautilVector;

public class Tuo

{

String str1="0"; //运算数1 初值一定为0 为了程序的安全

String str2="0"; //运算数2

String fh="+"; //运算符

String jg="";//结果

//状态开关 重要

int k1=1;//开关1 用于选择输入方向 将要写入str2或 str2

int k2=1;//开关2 符号键 次数 k2>1说明进行的是2+3-9+8 这样的多符号运算

int k3=1;//开关3 str1 是否可以被清0 ==1时可以 !=1时不能被清0

int k4=1;//开关4 str2 同上

int k5=1;//开关5 控制小数点可否被录入 ==1时可以 !=1 输入的小数点被丢掉

JButton jicunqi; //寄存器 记录 是否连续按下符号键

Vector vt=new Vector(20,10);

JFrame frame=new JFrame("sunshine---计算器");

JTextField jg_TextField=new JTextField(jg,20);//20列

JButton clear_Button=new JButton("清除");

JButton button0=new JButton("0");

JButton button1=new JButton("1");

JButton button2=new JButton("2");

JButton button3=new JButton("3");

JButton button4=new JButton("4");

JButton button5=new JButton("5");

JButton button6=new JButton("6");

JButton button7=new JButton("7");

JButton button8=new JButton("8");

JButton button9=new JButton("9");

JButton button_Dian=new JButton("");

JButton button_jia=new JButton("+");

JButton button_jian=new JButton("-");

JButton button_cheng=new JButton("");

JButton button_chu=new JButton("/");

JButton button_dy=new JButton("=");

////////////////////////////////////////////////////////////////////////

public static void main(String[] args)

{

Tuo tuo=new Tuo();

}

/////////////////////////////////////////////////////////////////////////

Tuo()

{

button0setMnemonic(KeyEventVK_0);//等效键

//其它 等效键 略,

jg_TextFieldsetHorizontalAlignment(JTextFieldRIGHT );//文本框 右对齐

JPanel pan=new JPanel();

pansetLayout(new GridLayout(4,4,5,5));//四行四列 边距为5像素

panadd(button7);

panadd(button8);

panadd(button9);

panadd(button_chu);

panadd(button4);

panadd(button5);

panadd(button6);

panadd(button_cheng);

panadd(button1);

panadd(button2);

panadd(button3);

panadd(button_jian);

panadd(button0);

panadd(button_Dian);

panadd(button_dy);

panadd(button_jia);

pansetBorder(BorderFactorycreateEmptyBorder(5,5,5,5));//pan对象的边距

JPanel pan2=new JPanel();

pan2add(jg_TextField);

JPanel pan3=new JPanel(); //为什么要 多此一句呢? 因为我不会设置 按钮的大小

pan3setLayout(new FlowLayout());

pan3add(clear_Button);

//clear_ButtonsetSize(10,10);//设置清零按钮的大小 吗的 不好使 !!

framesetLocation(300, 200); //主窗口 出现在位置

framesetResizable(false); //不能调大小

framegetContentPane()setLayout(new BorderLayout());

framegetContentPane()add(pan2,BorderLayoutNORTH);

framegetContentPane()add(pan,BorderLayoutCENTER);

framegetContentPane()add(pan3,BorderLayoutSOUTH);

framepack();

framesetVisible(true);

//以上是 控件 和 布局

//下面是事件处理 程 序

//--------------- 数 字 键 ----------------

class JianTing implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

String ss=((JButton)egetSource())getText();

jicunqi=(JButton)egetSource();

vtadd(jicunqi);

if (k1==1)

{

if(k3==1)

{

str1="";

k5=1;//还原开关k5状态

}

str1=str1+ss;

//k2=1;

k3=k3+1;

//Systemoutprintln(str1);

jg_TextFieldsetText(str1);//显示

}

else if(k1==2)

{

if (k4==1)

{

str2="";

k5=1; //还原开关k5状态

}

str2=str2+ss;

//k2=2;

k4=k4+1;

///////////////测试////////////////

jg_TextFieldsetText(str2);

}

}

}

//--------符 号-----------

class JianTing_fh implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

String ss2=((JButton)egetSource())getText();

jicunqi=(JButton)egetSource();

vtadd(jicunqi);

if(k2==1)

{

k1=2;//开关 k1 为1时,向数1写 为2时,向数2写

k5=1;

fh=ss2;

k2=k2+1;//按符号键的次数

}

else

{

int a=vtsize();

JButton c=(JButton)vtget(a-2);

if(!(cgetText()equals("+"))&&!(cgetText()equals("-"))&&!(cgetText()equals(""))&&!(cgetText()equals("/")))

//if(!(vtget(a-2)getText()equals("-"))||!(vtget(a-2)getText()equals("+"))||!(vtget(a-2)getText()equals(""))||!(vtget(a-2)getText()equals("/")))

{ yuns();

str1=jg;

k1=2;//开关 k1 为1时,向数1写 为2时,向数2写

k5=1;

k4=1;

fh=ss2;

} k2=k2+1;

}

}

}

//--------清除-------

class JianTing_clear implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

jicunqi=(JButton)egetSource();

vtadd(jicunqi);

k5=1;

k2=1;

k1=1;

k3=1;

k4=1;

str1="0";

str2="0";

fh="";

jg="";

jg_TextFieldsetText(jg);

vtclear();

}

}

//----------------等 于 ---------------------

class JianTing_dy implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

jicunqi=(JButton)egetSource();

vtadd(jicunqi);

yuns();

k1=1; //还原开关k1状态

//str1=jg;

k2=1;

k3=1;//还原开关k3状态

k4=1; //还原开关k4状态

str1=jg; //为7+5=12 +5=17 这种计算做准备

}

}

//----------------小数点 ---------------------

class JianTing_xiaos implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

jicunqi=(JButton)egetSource();

vtadd(jicunqi);

if(k5==1)

{

String ss2=((JButton)egetSource())getText();

if (k1==1)

{

if(k3==1)

{

str1="";

k5=1; //还原开关k5状态

}

str1=str1+ss2;

//k2=1;

k3=k3+1;

//Systemoutprintln(str1);

jg_TextFieldsetText(str1);//显示

}

else if(k1==2)

{

if (k4==1)

{

str2="";

k5=1; //还原开关k5状态

}

str2=str2+ss2;

//k2=2;

k4=k4+1;

///////////////测试////////////////

jg_TextFieldsetText(str2);

}

}

k5=k5+1; //

}

}

//注册 监听器

JianTing_dy jt_dy=new JianTing_dy();

JianTing jt= new JianTing();//临听数字键

JianTing_fh jt_fh= new JianTing_fh();//临 听符 号键

JianTing_clear jt_c=new JianTing_clear(); //清除键

JianTing_xiaos jt_xs=new JianTing_xiaos();// 小数点 键

button7addActionListener(jt);

button8addActionListener(jt);

button9addActionListener(jt);

button_chuaddActionListener(jt_fh);

button4addActionListener(jt);

button5addActionListener(jt);

button6addActionListener(jt);

button_chengaddActionListener(jt_fh);

button1addActionListener(jt);

button2addActionListener(jt);

button3addActionListener(jt);

button_jianaddActionListener(jt_fh);

button0addActionListener(jt);

button_DianaddActionListener(jt_xs);

button_dyaddActionListener(jt_dy);

button_jiaaddActionListener(jt_fh);

clear_ButtonaddActionListener(jt_c);

//关闭事件处理程序

frameaddWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

Systemexit(0);

}

});

}

//---------------计 算------------------

public void yuns()

{

double a2;//运算数1

double b2;//运算数2

String c=fh;// 运算符

double jg2=0 ;//结果

if (cequals(""))

{

//Systemoutprintln("请输入运算符");

jg_TextFieldsetText("请输入运算符");

}

else

{

Systemoutprintln("str1:"+str1);//调试时 使 用

Systemoutprintln("str2:"+str2);//调试时 使 用

Systemoutprintln("运算符:"+fh);//调试时 使 用

if (str1equals("")) //字符串 "" 转换成double型数据时 会出错 所以手工转

str1="00";

if (str2equals(""))

str2="00";

a2=DoublevalueOf(str1)doubleValue();

b2=DoublevalueOf(str2)doubleValue();

Systemoutprintln("double型的a2:"+a2); //调试时 使 用

Systemoutprintln("double型的b2:"+b2); //调试时 使 用

if (cequals("+"))

{

jg2=a2+b2;

}

if (cequals("-"))

{

jg2=a2-b2;

}

if (cequals(""))

{

jg2=a2b2;

}

if (cequals("/"))

{

if(b2==0)

{

jg2=0;//0000000000000 by 0 cu!

}

else

{

jg2=a2/b2;

}

}

Systemoutprintln("double型a2"+fh+"b2结果:"+jg2);

Systemoutprintln();

jg=((new Double(jg2))toString());

jg_TextFieldsetText(jg);

}

}

}

public class CalculatorA {

private JFrame jf;

private JButton[] jbs;

private JTextField jtf;

private JButton clear;

private double num1,num2,jieguo;

private char c;

/

构造方法实例化属性

/

public CalculatorA(){

jf=new JFrame("我的计算器v10"); //定义窗口的title

jtf=new JTextField(20);//定义文本域 也就是计算器的输入和现实区域

clear=new JButton("clear");// 定义按钮

jbs=new JButton[16];//定义按钮数组

String str="123+456-7890/=";//此处用来批量创建数字和元素符号。

for(int i=0; i<strlength(); i++){//批量赋值。这样做使得定义按钮方便很多否则,你需要一个按钮一个按钮像上面的"clear"那样的定义

jbs[i]=new JButton(strcharAt(i)+"");

}

init();

addEventHandler();

// setFont();

// setColor();

showMe();

}

/

布局图形界面

/

public void init(){

// jfsetLayout(manager)

JPanel jp1=new JPanel();//定义面板,用来容纳上面的按钮文本域等组件

jp1add(jtf);//将 文本域 让如面板中

JPanel jp2=new JPanel();//定义面板,用来容纳上面的按钮文本域等组件

jp2setLayout(new GridLayout(4,4));//定义网格布局,类似html 的table一个4X4的格子,然后将计算的按钮放到这个面板中

for(int i=0; i<16; i++){

jp2add(jbs[i]);

}

JPanel jp3=new JPanel();//定义面板,用来容纳上面的按钮文本域等组件

jp3add(clear);//将 清除按钮 让如面板中

jfadd(jp1,BorderLayoutNORTH);//将显示数据面板,使用边框布局,放置最顶端。

jfadd(jp2,BorderLayoutCENTER);//将显示计算按钮面板,使用边框布局,放置中间。

jfadd(jp3,BorderLayoutSOUTH);//将显示清除按钮面板,使用边框布局,放置最底端。

}

public void setFont(){

}

public void setColor(){

}

public void addEventHandler(){//创建监听事件,用来监听每一个按钮,当点击后需要触发什么事件。

ActionListener lis=new ActionListener(){

public void actionPerformed(ActionEvent e){

// TODO Auto-generated method stub

JButton jb=(JButton)egetSource();//获取事件源

// String key=(String)egetActionCommand();

String str =jbgetText()trim();//把字符串的首尾空格去掉!

// String str2=egetActionCommand()trim();//返回事件源的文本内容

if("0123456789"indexOf(str)!=-1){//如果是数字或点号

jtfsetText(jtfgetText()+str);//设置显示文本域,也就是你点击数字按钮,在显示文本域显示出你点击的值。

return;

}

if("+-/"indexOf(str)!=-1){//当点击运算按钮触发的事件

num1=DoubleparseDouble(jtfgetText());//获取文本域的值并转换类型并暂时保存起来。

jtfsetText("");

c=strcharAt(0);

jtfsetText("");

return ;

}

if(strequals("=")){//根据点击的按钮式"="号执行结算结果

num2=DoubleparseDouble(jtfgetText());

// jtfsetText("");

switch(c){

case '+': jieguo=num1+num2;break;

case '-': jieguo=num1-num2;break;

case '': jieguo=num1num2; break;

case '/': jieguo=num1/num2;break;

}

jtfsetText(DoubletoString(jieguo)); //返回结算结果到显示文本域

return;

}

if(egetActionCommand()equals("clear")){

jtfsetText("");//清空显示文本域

return;

}

}

};

for(int i=0; i<jbslength; i++){

//为每个按钮加上监听类

jbs[i]addActionListener(lis);

}

clearaddActionListener(lis);

}

public void showMe(){

jfpack();//调整此窗口的大小,以适合其子组件的首选大小和布局。

jfsetVisible(true);//设置窗口可见

jfsetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);//设置程序的退出按钮,退出即同时停止程序

}

public static void main(String[] args){//启动程序的入口

new CalculatorA();

}

}

这代码注释写的太累人了。小窗口费劲。给加点分吧。

import javaawtContainer;

import javaawtGridLayout;

import javaawteventActionEvent;

import javaawteventActionListener;

import javaawteventFocusAdapter;

import javaawteventFocusEvent;

import javasqlDate;

import javautilCalendar;

import javaxswingJButton;

import javaxswingJFrame;

import javaxswingJLabel;

import javaxswingJTextField;

public class ZuJin extends JFrame {

/

  (结束日期-开始日期)÷30×月租金+业务费用+其他费用=总费用

〔(结束日期-开始日期)÷30×月租金+业务费用+其他费用〕÷合租人员=平均费用

需要d出一个租金计算器对话框 分为租金计算信息与租金计算结果两部分

 /

public ZuJin(){

Container c=getContentPane();

csetLayout(new GridLayout(5, 4));

JLabel j1=new JLabel("开始日期");

cadd(j1);

JTextField jt1=new JTextField(10);

cadd(jt1);

JLabel j2=new JLabel("结束日期");

cadd(j2);

JTextField jt2=new JTextField("");

cadd(jt2);

JLabel j3=new JLabel("月租金(元)");

cadd(j3);

JTextField jt3=new JTextField(5);

cadd(jt3);

JLabel j4=new JLabel("业务费(元)");

cadd(j4);

JTextField jt4=new JTextField(5);

cadd(jt4);

JLabel j5=new JLabel("其他费用(元)");

cadd(j5);

JTextField jt5=new JTextField(5);

cadd(jt5);

JLabel j6=new JLabel("合租人员数量");

cadd(j6);

JTextField jt6=new JTextField(3);

cadd(jt6);

JLabel j7=new JLabel("总费用(元)");

cadd(j7);

JTextField jt7=new JTextField(5);

jt7setEditable(false);

cadd(jt7);

JLabel j8=new JLabel("平均费用(元)");

cadd(j8);

JTextField jt8=new JTextField(5);

jt8setEditable(false);

cadd(jt8);

JButton jb1=new JButton("计算");

cadd(jb1);

       jt1addFocusListener(new FocusAdapter()

        {

            @Override

            public void focusGained(FocusEvent e)

            {

          if (jt1getText()equals("格式为:0000-00-00")) {

             jt1setText("");

}

                

            }

            

            @Override

            public void focusLost(FocusEvent e)

            {

             if (jt1getText()equals("")) {

             jt1setText("格式为:0000-00-00");

}

                

            }

            

        });

       jt2addFocusListener(new FocusAdapter()

        {

            @Override

            public void focusGained(FocusEvent e)

            {

          if (jt2getText()equals("格式为:0000-00-00")) {

             jt2setText("");

}

                

            }

            

            @Override

            public void focusLost(FocusEvent e)

            {

             if (jt2getText()equals("")) {

                jt2setText("格式为:0000-00-00");

}

                

            }

            

        });

jb1addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub

Date d1=DatevalueOf(jt1getText());//开始日期

Date d2=DatevalueOf(jt2getText());//结束日期

Calendar c1=CalendargetInstance();

c1setTime(d1);

Calendar c2=CalendargetInstance();

c2setTime(d2);

int day1=c1get(CalendarDAY_OF_YEAR);

int day2=c2get(CalendarDAY_OF_YEAR);

int days=day2-day1;

    double money1=DoublevalueOf(jt3getText());//月租金

    double money2=DoublevalueOf(jt4getText());//业务费

    double money3=DoublevalueOf(jt5getText());//其他费用

    int man=IntegervalueOf(jt6getText());//人数

    double money4=days/30money1+money2+money3;

double money5=00;

if (man!=0) {

money5=money4/man;

}

else {

money5=money4;

}

jt7setText(StringvalueOf(money4));

jt8setText(StringvalueOf(money5));

}

});

setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

setBounds(400,400,500,300);

setVisible(true);

setTitle("租金计算器");

}

public static void main(String[] args) {

ZuJin zj=new ZuJin();

}

}

丑是丑了点 用还是可以用的。

java EE是java企业级开发平台的意思,实在是看不出跟计算器这种小程序有什么关联。不知道楼主要找的是不是这个。

package ex1;

import javaawtBorderLayout;

import javaawtColor;

import javaawtDimension;

import javaawtFont;

import javaawtGridLayout;

import javaawteventActionEvent;

import javaawteventActionListener;

import javatextDecimalFormat;

import javaxswingBorderFactory;

import javaxswingButtonGroup;

import javaxswingJButton;

import javaxswingJCheckBoxMenuItem;

import javaxswingJFrame;

import javaxswingJMenu;

import javaxswingJMenuBar;

import javaxswingJMenuItem;

import javaxswingJPanel;

import javaxswingJRadioButtonMenuItem;

import javaxswingJTextField;

public class Calcutor extends JFrame {

private JTextField tf;

private JPanel panel1, panel2, panel3, panel4;

private JMenuBar myBar;

private JMenu menu1, menu2, menu3;

private JMenuItem editItem1, editItem2, help1, help2, help3;

private JRadioButtonMenuItem seeItem1, seeItem2;//单选框

private JCheckBoxMenuItem seeItem3;//复选框

private ButtonGroup bgb;

private String back;

private boolean IfResult = true, flag = false;

private String oper = "=";

private double result = 0;

private Num numActionListener;

private DecimalFormat df;

public Calcutor(){

super("科学计算器");//设置标题栏

df = new DecimalFormat("#####");//保留四位小数

thissetLayout(new BorderLayout(10, 5));

panel1 = new JPanel(new GridLayout(1, 3, 10, 10));

panel2 = new JPanel(new GridLayout(5, 6, 5, 5));//5行6列

panel3 = new JPanel(new GridLayout(5, 1, 5, 5));

panel4 = new JPanel(new BorderLayout(5, 5));

/

菜单栏

/

myBar = new JMenuBar();

menu1 = new JMenu("编辑(E)");

menu2 = new JMenu("查看(V)");

menu3 = new JMenu("帮助(H)");

menu1setFont(new Font("宋体", FontPLAIN, 12));

menu2setFont(new Font("宋体", FontPLAIN, 12));

menu3setFont(new Font("宋体", FontPLAIN, 12));

/

编辑栏

/

editItem1 = new JMenuItem("复制(C) Ctrl+C");

editItem2 = new JMenuItem("粘贴(P) Ctrl+V");

editItem1setFont(new Font("宋体",FontPLAIN,12));

editItem2setFont(new Font("宋体",FontPLAIN,12));

/

查看栏

/

seeItem1 = new JRadioButtonMenuItem("科学型(T)");

seeItem2 = new JRadioButtonMenuItem("标准型(S)");

seeItem3 = new JCheckBoxMenuItem("数字分组(I)");

seeItem1setFont(new Font("宋体",FontPLAIN,12));

seeItem2setFont(new Font("宋体",FontPLAIN,12));

seeItem3setFont(new Font("宋体",FontPLAIN,12));

/

帮助栏

/

help1 = new JMenuItem("帮助主题(H)");

help2 = new JMenuItem("关于计算器(A)");

help1setFont(new Font("宋体",FontPLAIN,12));

help2setFont(new Font("宋体",FontPLAIN,12));

bgb = new ButtonGroup();//选项组

menu1add(editItem1);

menu1add(editItem2);

menu2add(seeItem1);

menu2add(seeItem2);

menu2addSeparator();//添加一条分割线

menu2add(seeItem3);

menu3add(help1);

menu3addSeparator();//添加一条分割线

menu3add(help2);

myBaradd(menu1);

myBaradd(menu2);

myBaradd(menu3);

thissetJMenuBar(myBar);

numActionListener = new Num();//实现数字监听

/

文本域,即为计算器的屏幕显示区域

/

tf = new JTextField();

tfsetEditable(false);//文本区域不可编辑

tfsetBackground(Colorwhite);//文本区域的背景色

tfsetHorizontalAlignment(JTextFieldRIGHT);//文字右对齐

tfsetText("0");

tfsetBorder(BorderFactorycreateLoweredBevelBorder());

init();//对计算器进行初始化

}

/

初始化 *** 作

添加按钮

/

private void init(){

addButton(panel1, "Backspace", new Clear(), Colorred);

addButton(panel1, "CE", new Clear(), Colorred);

addButton(panel1, "C", new Clear(), Colorred);

addButton(panel2, "1/x", new Signs(), Colormagenta);

addButton(panel2, "log", new Signs(), Colormagenta);

addButton(panel2, "7", numActionListener, Colorblue);

addButton(panel2, "8", numActionListener, Colorblue);

addButton(panel2, "9", numActionListener, Colorblue);

addButton(panel2, "÷", new Signs(), Colorred);

addButton(panel2, "n!", new Signs(), Colormagenta);

addButton(panel2, "sqrt", new Signs(), Colormagenta);

addButton(panel2, "4", numActionListener, Colorblue);

addButton(panel2, "5", numActionListener, Colorblue);

addButton(panel2, "6", numActionListener, Colorblue);

addButton(panel2, "×", new Signs(), Colorred);

addButton(panel2, "sin", new Signs(), Colormagenta);

addButton(panel2, "x^2", new Signs(), Colormagenta);

addButton(panel2, "1", numActionListener, Colorblue);

addButton(panel2, "2", numActionListener, Colorblue);

addButton(panel2, "3", numActionListener, Colorblue);

addButton(panel2, "-", new Signs(), Colorred);

addButton(panel2, "cos", new Signs(), Colormagenta);

addButton(panel2, "x^3", new Signs(), Colormagenta);

addButton(panel2, "0", numActionListener, Colorblue);

addButton(panel2, "-/+", new Clear(), Colorblue);

addButton(panel2, "", new Dot(), Colorblue);

addButton(panel2, "+", new Signs(), Colorred);

addButton(panel2, "tan", new Signs(), Colormagenta);

addButton(panel2, "%", new Signs(), Colormagenta);

addButton(panel2, "π", numActionListener, Colororange);

addButton(panel2, "e", numActionListener, Colororange);

addButton(panel2, "′″", new Signs(), Colororange);

addButton(panel2, "=", new Signs(), Colorred);

JButton btns = new JButton("计算器");

btnssetBorder(BorderFactorycreateLoweredBevelBorder());

btnssetEnabled(false);//按钮不可 *** 作

btnssetPreferredSize(new Dimension(20, 20));

panel3add(btns);//加入按钮

addButton(panel3, "MC", null, Colorred);

addButton(panel3, "MR", null, Colorred);

addButton(panel3, "MS", null, Colorred);

addButton(panel3, "M+", null, Colorred);

panel4add(panel1, BorderLayoutNORTH);

panel4add(panel2, BorderLayoutCENTER);

thisadd(tf, BorderLayoutNORTH);

thisadd(panel3, BorderLayoutWEST);

thisadd(panel4);

pack();

thissetResizable(false);//窗口不可改变大小

thissetLocation(300, 200);

thissetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);

}

/

统一设置按钮的的使用方式

@param panel

@param name

@param action

@param color

/

private void addButton(JPanel panel, String name, ActionListener action, Color color){

JButton bt = new JButton(name);

paneladd(bt);//在面板上增加按钮

btsetForeground(color);//设置前景(字体)颜色

btaddActionListener(action);//增加监听事件

}

/

计算器的基础 *** 作(+ - × ÷)

@param x

/

private void getResult (double x){

if(oper == "+"){result += x;}

else if(oper == "-"){result -= x;}

else if(oper == "×"){result = x;}

else if(oper == "÷"){result /= x;}

else if(oper == "="){result = x;}

tfsetText(dfformat(result));

}

/

运算符号的事件监听

/

class Signs implements ActionListener{

public void actionPerformed(ActionEvent e) {

/

用ActionEvent对象的getActionCommand()方法

取得与引发事件对象相关的字符串

/

String str = egetActionCommand();

/ sqrt求平方根 /

if(strequals("sqrt")){

double i = DoubleparseDouble(tfgetText());

if(i>=0){

/

StringvalueOf() 转换为字符串

dfformat() 按要求保留四位小数

Mathsqrt() 求算数平方根

/

tfsetText(StringvalueOf(dfformat(Mathsqrt(i))));

}

else{

tfsetText("负数不能开平方根");

}

}

/ log求常用对数 /

else if(strequals("log")){

double i = DoubleparseDouble(tfgetText());

if(i>0){

tfsetText(StringvalueOf(dfformat(Mathlog(i))));

}else{

tfsetText("负数不能求对数");

}

}

/ %求百分比 /

else if(strequals("%")){

tfsetText(dfformat(DoubleparseDouble(tfgetText()) / 100));

}

/ 1/x求倒数 /

else if(strequals("1/x")){

if(DoubleparseDouble(tfgetText()) == 0){

tfsetText("除数不能为零");

}else{

tfsetText(dfformat(1 / DoubleparseDouble(tfgetText())));

}

}

/ sin求正弦函数 /

else if(strequals("sin")){

double i = DoubleparseDouble(tfgetText());

tfsetText(StringvalueOf(dfformat(Mathsin(i))));

}

/ cos求余弦函数 /

else if(strequals("cos")){

double i = DoubleparseDouble(tfgetText());

tfsetText(StringvalueOf(dfformat(Mathcos(i))));

}

/ tan求正切函数 /

else if(strequals("tan")){

double i = DoubleparseDouble(tfgetText());

tfsetText(StringvalueOf(dfformat(Mathtan(i))));

}

/ n!求阶乘 /

else if(strequals("n!")){

double i = DoubleparseDouble(tfgetText());

if((i%2==0)||(i%2==1))//判断为整数放进行阶乘 *** 作

{

int j = (int)i;//强制类型转换

int result=1;

for(int k=1;k<=j;k++)

result = k;

tfsetText(StringvalueOf(result));

}

else

{

tfsetText("无法进行阶乘");

}

}

/ x^2求平方 /

else if(strequals("x^2")){

double i = DoubleparseDouble(tfgetText());

tfsetText(StringvalueOf(dfformat(ii)));

}

/ x^3求立方 /

else if(strequals("x^3")){

double i = DoubleparseDouble(tfgetText());

tfsetText(StringvalueOf(dfformat(iii)));

}

/ ′″角度转换 /

/

将角度值转换成弧度值,方便三角函数的计算

/

else if(strequals("′″")){

double i = DoubleparseDouble(tfgetText());

tfsetText(StringvalueOf(i/180MathPI));

}

else{

if(flag){

IfResult = false;

}

if(IfResult){

oper = str;

}else{

getResult(DoubleparseDouble(tfgetText()));

oper = str;

IfResult = true;

}

}

}

}

/

清除按钮的事件监听

/

class Clear implements ActionListener{

public void actionPerformed(ActionEvent e) {

/

用ActionEvent对象的getActionCommand()方法

取得与引发事件对象相关的字符串

/

String str = egetActionCommand();

if(str == "C"){

tfsetText("0");

IfResult = true;

result = 0;

}else if(str == "-/+"){

double i = 0 - DoubleparseDouble(tfgetText()trim());

tfsetText(dfformat(i));

}else if(str == "Backspace"){

if(DoubleparseDouble(tfgetText()) > 0){

if(tfgetText()length() > 1){

tfsetText(tfgetText()substring(0, tfgetText()length() - 1));

//使用退格删除最后一位字符

}else{

tfsetText("0");

IfResult = true;

}

}else{

if(tfgetText()length() > 2){

tfsetText(tfgetText()substring(0, tfgetText()length() - 1));

}else{

tfsetText("0");

IfResult = true;

}

}

}else if(str == "CE"){

tfsetText("0");

IfResult = true;

}

}

}

/

数字输入的事件监听

/

class Num implements ActionListener{

public void actionPerformed(ActionEvent e) {

String str = egetActionCommand();

if(IfResult){

tfsetText("");

IfResult = false;

}

if(str=="π")

{

tfsetText(StringvalueOf(MathPI));

}

else if(str=="e")

{

tfsetText(StringvalueOf(MathE));

}

else{

tfsetText(tfgetText()trim() + str);

if(tfgetText()equals("0")){

tfsetText("0");

IfResult = true;

flag = true;

}

}

}

}

/

小数点的事件监听

/

class Dot implements ActionListener{

public void actionPerformed(ActionEvent e) {

IfResult = false;

if(tfgetText()trim()indexOf("") == -1){

tfsetText(tfgetText() + "");

}

}

}

/

main方法

/

public static void main(String[] args) {

new Calcutor()setVisible(true);

}

}

这是java中类的成员访问权限问题。类的成员访问权限一共四种:public、protected、缺省的、private。private成员只能在类的内部访问使用,在其他类和其他包中都访问不到。如果我们要访问private成员变量,就给它写一个set(修改值)和get(取值)方法,并且用public修饰符。这样我们就可以在类的外部 *** 纵这些私有成员变量。这也体现了java中的封装思想。举例:电视机上面一般就几个按钮,如开机、关机、换频道等等,但是“开机”具体由电视机怎么实现的,你不需要知道,因为电视厂商把它封装好了,你只管开机就可以了。

以上就是关于求一个简单的JAVA小程序,要有图形界面。全部的内容,包括:求一个简单的JAVA小程序,要有图形界面。、请高手做一个java编程题,做一个计算器(要求可以计算),用swing做,要求有JFrame、JButton。要原创哦!、求java简单计算器源代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9374238.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存