JAVA项目实战(计算器)
计算器Java编程完全代码

计算器Java编程代码1、界面截图1、程序代码import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Counter implements ActionListener {// 改进小数问题private boolean append = false;JButton[] jb = new JButton[20];JTextField jtf = new JTextField(19);String[] st = { "Backs", "CE", "C", "+", " 7 ", " 8 ", " 9", "-"," 4 ", " 5 ", " 6", "*", " 1 ", " 2 ", " 3", "/"," . ", "+/-", " 0", "=", };String num1 = "0";String operator = "+";public Counter() {JFrame jf = new JFrame("计算器");// 界面设置GridLayout gl = new GridLayout(6, 1);jf.setLayout(gl);JPanel jp0 = new JPanel();jp0.add(jtf);jf.add(jp0);JPanel jp1 = new JPanel();for (int i = 0; i < 4; i++) {jb[i] = new JButton(st[i]);jp1.add(jb[i]);}jf.add(jp1);JPanel jp2 = new JPanel();for (int i = 4; i < 8; i++) {jb[i] = new JButton(st[i]);jp2.add(jb[i]);}jf.add(jp2);JPanel jp3 = new JPanel();for (int i = 8; i < 12; i++) {jb[i] = new JButton(st[i]);jp3.add(jb[i]);}jf.add(jp3);JPanel jp4 = new JPanel();for (int i = 12; i < 16; i++) { jb[i] = new JButton(st[i]);jp4.add(jb[i]);}jf.add(jp4);JPanel jp5 = new JPanel();for (int i = 16; i < 20; i++) { jb[i] = new JButton(st[i]);jp5.add(jb[i]);}jf.add(jp5);jtf.setEditable(false);// 文本框不可编辑jf.setResizable(false);// 窗口不可编辑jf.pack();// 自动调整窗口的大小// jf.setSize(240, 220);jf.setLocation(450, 300);jf.setVisible(true);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);for (int i = 0; i < 20; i++) {// 注册监听jb[i].addActionListener(this);}}public void actionPerformed(ActionEvent ae) {String s = ae.getActionCommand();if (s.trim().matches("^\\d$")) {// 判断是输入的是否是数字if (append) {// 追加数字String ss = jtf.getText().trim();jtf.setText(ss + s.trim());} else {// 替换文本框原来的数字jtf.setText(s.trim());append = true;}} else if ("+-/*".indexOf(s.trim()) != -1) {// 判断按的是否是四则运算符num1 = jtf.getText();// 将第一次输入的数存储起来operator = s.trim();// 将输入的符号存储起来append = false;} else if ("=".equals(s.trim())) {String num2 = jtf.getText();double d1 = Double.parseDouble(num1);double d2 = Double.parseDouble(num2);if ("+".equals(operator)) {// 加法运算d1 = d1 + d2;} else if ("-".equals(operator)) {// 减法运算d1 = d1 - d2;} else if ("*".equals(operator)) {// 乘法运算d1 = d1 * d2;} else if ("/".equals(operator)) {// 除法运算d1 = d1 / d2;}jtf.setText(d1 + "");// 显示结果append = false;} else if (".".equals(s.trim())) {// 判断小数点String temp = jtf.getText();if (temp.indexOf(".") == -1) {jtf.setText(temp + ".");append = true;}} else if ("+/-".equals(s.trim())) {// 判断+/-String temp = jtf.getText();if(temp.startsWith("-")) {// 如果该数是负数则取负号后的数字jtf.setText(temp.substring(1));} else {// 如果是正数则在这个数前加上负号jtf.setText("-" + temp);}} else if ("CE".equals(s.trim()) || "C".equals(s.trim())) {// 判断复位键jtf.setText("0");append = false;} else if ("BackS".equals(s.trim())) {// 判断BackS键(删除)String temp = jtf.getText();if (temp.length() > 0) {jtf.setText(temp.substring(0, temp.length() - 1));}}}public static void main(String[] args) {new Counter();}}。
用java代码写的简易计算器(可以实现基本的加减乘除功能)

⽤java代码写的简易计算器(可以实现基本的加减乘除功能)package A;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.*;public class Calcular3 extends JFrame implements ActionListener,MouseListener{private int m1=0,n=0;//private double m2=0;//运算的数private int flag=0;JFrame f;JPanel p1,p2,p3;JTextField t;JButton b1[]=new JButton[18];String b[]= {"1","2","3","4","5","6","7","8","9","0","清空","退格",".","=","+","-","*","/"};public Calcular3(){f=new JFrame("计算器");t=new JTextField(35);p1=new JPanel();p2=new JPanel();p3=new JPanel();f.setBounds(100, 100, 400, 200);f.add(p1,BorderLayout.NORTH);f.add(p2,BorderLayout.CENTER);f.add(p3,BorderLayout.EAST);p2.setLayout(new GridLayout(5,3));p3.setLayout(new GridLayout(4,1));p1.add(t);for(int i=0;i<14;i++) {b1[i]=new JButton(b[i]);p2.add(b1[i]);b1[i].addActionListener(this);}for(int i=14;i<18;i++) {b1[i]=new JButton(b[i]);p3.add(b1[i]);b1[i].addActionListener(this);}/*for(int i=0;i<18;i++) {b1[i].addActionListener(this);}*/f.setVisible(true);}//实现接⼝的⽅法public void mouseClicked(MouseEvent e) {}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void actionPerformed(ActionEvent e) {String str="";int i;for(i=0;i<=9;i++) {if(e.getSource()==b1[i]) {if(i==9) {n=n*10;}else {n=n*10+i+1;}str=String.valueOf(n);//整形n转换成字符串strt.setText(str);//显⽰到⽂本框上}}for(i=14;i<18;i++) {//+、-、*、/if(e.getSource()==b1[i]) {//匹配运算符m1=Integer.parseInt(t.getText());if(flag==15) {m2=m1+m2;}else if(flag==16) {m2=m1-m2;}else if(flag==17) {m2=m1*m2;}else if(flag==18) {m2=m1/m2;}else m2=m1;//若⽆连续的运算符运算,保存当前数据到m2 if(i==14) flag=15;else if(i==15) flag=16;else if(i==16) flag=17;else flag=18;str=String.valueOf(b[i]);t.setText(str);//显⽰到⽂本框上n=0;//还原,记录下次数据break;//找到匹配数据退出循环}}if(e.getSource()==b1[13]) {//=m1=Integer.parseInt(t.getText());if(flag==15) {m2=m2+m1;}else if(flag==16) {m2=m2-m1;}else if(flag==17) {m2=m2*m1;}else if(flag==18) {m2=m2/m1;}else m2=m1;str=String.valueOf(m2);t.setText(str);//显⽰到⽂本框上n=0;//还原,记录下次数据flag=0;//flag还原0,表明没有未处理的运算符}if(e.getSource()==b1[10]) {//各变量变为0 清空m1=0;m2=0;flag=0;n=0;t.setText("0");//显⽰到⽂本框上}if(e.getSource()==b1[11]) {//退格m1=(int)(Double.parseDouble(t.getText())/10);n=m1;str=String.valueOf(m1);t.setText(str);}if(e.getSource()==b1[12]) {//⼩数点m1=Integer.parseInt(t.getText());str=String.valueOf(m1+b[12]);t.setText(str);//显⽰到⽂本框上int j=0;for(i=0;i<=9;i++) {if(e.getSource()==b1[i]) {j++;m2=Math.pow(0.1, j)*Integer.parseInt(b[i]);str=String.valueOf(m1+m2);t.setText(str);//显⽰到⽂本框上}}}}//主函数public static void main(String[] args) {new Calcular3();}}。
java简单实用小项目实例

java简单实用小项目实例Java是一种广泛应用于开发各类软件和项目的编程语言,它具有简洁、高效、可靠等特点。
本文将介绍几个简单实用的Java小项目实例,帮助读者巩固和应用Java语言的知识。
1. 学生成绩管理系统学生成绩管理系统是一个常见的小项目,它可以实现对学生信息和成绩的管理和查询。
通过Java语言的面向对象特性,我们可以定义学生类和成绩类,并编写相应的方法来实现学生信息的录入、成绩的录入和查询等功能。
这个项目可以帮助读者熟悉Java的面向对象编程思想和基本语法。
2. 电话号码归属地查询电话号码归属地查询是一个实用的小项目,它可以根据输入的电话号码查询该号码所属的地区。
通过Java语言的网络编程知识,我们可以编写一个简单的客户端程序,通过访问一个公开的电话号码归属地查询API,实现对电话号码归属地的查询。
这个项目可以帮助读者了解Java的网络编程和API的使用。
3. 简易计算器简易计算器是一个常见的小项目,它可以实现基本的加减乘除等运算功能。
通过Java语言的GUI编程知识,我们可以使用Swing或JavaFX等库来创建一个简单的计算器界面,并编写相应的计算逻辑来实现运算功能。
这个项目可以帮助读者熟悉Java的GUI编程和事件处理的基本原理。
4. 文件备份工具文件备份工具是一个实用的小项目,它可以帮助用户将指定目录下的文件备份到指定位置。
通过Java语言的文件操作知识,我们可以编写一个简单的程序,实现对指定目录下的文件进行遍历和复制等操作。
这个项目可以帮助读者了解Java的文件操作和异常处理的基本方法。
5. 网络聊天室网络聊天室是一个有趣的小项目,它可以实现多人在网络上进行实时聊天的功能。
通过Java语言的Socket编程知识,我们可以编写一个简单的服务器程序和客户端程序,实现用户之间的消息收发和显示。
这个项目可以帮助读者了解Java的Socket编程和多线程编程的基本原理。
以上是几个简单实用的Java小项目实例。
计算器Java创业计划书

计算器Java创业计划书项目名称:计算器Java一、项目介绍计算器Java是一款基于Java语言开发的计算器应用程序,旨在为用户提供简单、便捷的计算功能。
该应用程序将支持基本的算术运算,如加、减、乘、除,以及一些常用的科学计算功能,如平方根、指数运算等。
用户可以通过界面输入数字和运算符,快速得到计算结果。
二、市场分析随着科技的发展和智能手机的普及,人们对便捷、快速的计算工具的需求越来越大。
计算器是每个人日常生活中不可缺少的工具之一,无论是在学习、工作还是生活中,都需要进行各种计算。
而随时随地能够使用的手机应用程序成为人们的首选。
目前市场上已经存在着各种各样的计算器应用程序,但大多数应用程序功能复杂,界面复杂,使用不方便。
因此,开发一款简单、易用、功能全面的计算器应用程序具有很大的市场需求。
三、竞争分析目前市场上存在着一些知名的计算器应用程序,如计算器Pro、科学计算器等。
这些应用程序功能齐全,界面美观,用户口碑良好,具有一定的市场竞争力。
但是,这些应用程序大多功能过于复杂,对于普通用户来说,使用起来并不方便。
因此,计算器Java应用程序将致力于提供简单、易用、功能全面的计算器工具,吸引更多用户使用。
四、商业模式计算器Java应用程序将采用免费试用和付费订阅的商业模式。
用户可以免费试用基本功能,如加、减、乘、除等,而需要使用更多高级功能时,则需要付费订阅。
付费订阅可以获取更多功能,如科学计算、历史记录等,从而提升用户体验。
另外,我们还将与广告商合作,将适合用户的广告展示在应用程序中,实现广告变现。
五、营销推广为了吸引更多用户使用计算器Java应用程序,我们将实施以下营销推广策略:1. 在各大应用商店发布应用程序,如苹果商店、谷歌商店等;2. 利用社交媒体平台做宣传推广,如Facebook、Twitter等;3. 与知名数码媒体合作,做专题报道和推广;4. 参加相关展会和活动,展示产品,并进行产品体验活动;5. 通过优惠活动,吸引用户安装和试用应用程序。
Java实现简易计算器

Java实训作业题目:Java实现简易计算器学院:姓名:学号:班级:20 年月一、实验目的通过课程设计,主要要达到两个目的,一是检验和巩固专业知识、二是提高综合素质和能力。
此次课程设计实训主要是Java语言程序设计的实现。
通过该课程设计,可以将课堂上掌握的理论知识与处理数据的业务相结合,以检验自己掌握知识的宽度、深度及对知识的综合运用能力。
二、实验要求用Java编写一个简单的计算器,使其能够实现最基本的功能,如简单的加、减、乘、除;平方根,倒数,平方等功能。
三、详细内容1.界面设计界面设计使用GUI,其中有用到swing组件的TextField和Button,用到awt中的BorderLayout和GridLayout布局管理方式,其图形界面如图1-1所示:图1-1其中主要代码为:public mainWindow(){this.setTitle("计算器");//用户图形界面标题this.setVisible(true);//用户图形界面可缩小this.setResizable(false);//用户图形界面不可放大this.setSize(350,300);//设置用户图形界面的大小this.setLocation(400,150);//用户图形界面在屏幕中的显示位置JPanel panel1 = new JPanel();//新建一个画板JPanel panel2 = new JPanel();button1 = new JButton("1");...reset = new JButton("CE");Container container = this.getContentPane();container.add(panel2,BorderLayout.NORTH);container.add(panel1);panel1.setLayout(new GridLayout(5,4));//将画板1分为4行5列result.setEnabled(false);result.setFont(new Font("Dialog",Font.BOLD,25));//运算结果的字体大小result.setEditable(false);result.setHorizontalAlignment(SwingConstants.RIGHT);panel1.add(reciprocal);//分别将20个按钮依次添加到画板panel1中,并设置各自的大小reciprocal.setFont(new Font("Dialog",Font.PLAIN,20));...panel1.add(divide);divide.setFont(new Font("Dialog",Font.PLAIN,20));panel2.setLayout(new GridLayout());panel2.add(result);//画板panel2添加运算结果2.四则运算较为简单的实现了简单的加、减、乘、除运算,主要代码如下:ActionListener equal1 = new ActionListener(){ //实现四则运算public void actionPerformed(ActionEvent e){String str = result.getText();b = DatatypeConverter.parseDouble(str);{if(flag == "+")c = a + b;else if(flag == "-")c = a - b;else if(flag == "*")c = a * b;else if(flag == "/" || b != 0)c = a / b;}if(flag != "=")result.setText("" + c);elseresult.setText("零不能做除数!");a = 0;b = 0;c = 0;flag = "";}};3.其他功能另外添加了平方根,倒数,平方等功能,主要代码如下:平方根运算的实现:ActionListener sqrt1= new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = Math.sqrt(i);result.setText("" + i);}};倒数运算的实现:ActionListener reciprocal1 = new ActionListener(){ public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = 1/i;result.setText("" + i);}};平方运算的实现:ActionListener square1 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = i*i;result.setText("" + i);}};4.程序测试经测试发现本计算器基本功能均能实现,可正常运行计算,针对功能实现的代码部分过于简单,可以对其进行改善提高,方便用户使用!5.实训小结通过对计算器窗体的编写,熟悉了java图形用户界面的设计原理和程序结构,熟悉了java中awt和swing的组合。
java计算器实验报告

课程设计论文设计题目:java计算器学生姓名:指导教师:专业名称:所在院系:摘要在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。
Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。
该程序是一个图形界面的java 计算器,其界面主要采用了swing包,程序实现了:(1)实现简单加、减、乘、除的运算。
(2)实现除了加、减、乘、除按钮外其他按钮功能。
(3)给软件添加一个编辑、查看、帮助的主菜单。
(4)在数据输入方面,提高程序代码的健壮性,增强其对非法输入数据的识别能力。
(5)科学型计算器与标准计算器之间的菜单切换。
Java的早期版本以来,抽象窗口工具包为用户界面组件提供了平台独立的API。
在AWT中,每个组件都由一个原生的等同组件生成和控制,这个原生组件是由当前的图形窗口系统决定的。
与此相对,Swing 组件经常被描述为轻量级的,因为它们不需要操作系统本身所带窗口工具包的原生资源来生成。
目录第1章概要设计 (1)1.1查找资料 (1)1.2选题 (1)1.3标准型计算器界面设计 (1)1.4本章小节 (3)第2章程序整体设计说明 (4)2.1程序中所用到的变量 (4)2.2程序部分源代码及注释 (4)2.3本章小节 (15)第3章程序运行效果 (16)3.1程序运行主界面 (16)3.2程序中各按钮运行界面 (16)3.3本章小节 (20)第4章设计中遇到的重点及难点 (21)4.1设计中遇到的重点 (21)4.2设计中的遇到的难点 (21)4.3本章小节 (23)第5章本次设计中存在不足与改良方案 (24)5.1本次设计中存在的不足 (24)5.2本次设计的改良方案 (24)5.3本章小节 (24)结论 (25)参考文献 (26)致谢 (27)指导教师评语 (28)答辩委员会评语 (29)第1章概要设计1.1查找资料21世纪,随着社会经济的迅速发展和科学技术的全面进步,人类社会已进入信息和网络时代。
java实验报告——简单计算器的编写五篇范文

java实验报告——简单计算器的编写五篇范文第一篇:java实验报告——简单计算器的编写JAVA实验报告——简单计算器的编写班级:学号:姓名:一、实验目的1.掌握java图形用户界面(GUI)的设计原理和程序结构2.能设计复核问题要求的图形用户界面程序3.掌握常用组件的事件接口4.应用awt和swing组件进行应用程序设计二、实验条件1.计算机一台2.java软件开发环境三、实验步骤1、编写代码:mport java.awt.*;import java.awt.event.*;import javax.swing.*;public class JCalculator extends JFrame implements ActionListener {private static final long serialVersionUID =-***457Lprivate class WindowCloser extends WindowAdapter {public void windowClosing(WindowEvent we){System.exit(0);}}int i;private final String[] str = { “7”, “8”, “9”, “/”, “4”, “5”, “6”, “*”, “1”,“2”, “3”, “-”, “.”, “0”, “=”, “+” };JButton[] buttons = new JButton[str.length]; JButton reset = new JButton(“CE”); JTextField display = new JTextField(“0”);public JCalculator(){super(“Calculator”);JPanel panel1 = new JPanel(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.add(“Center”, display);panel2.add(“East”, reset);getContentPane().setLayout(new BorderLayout()); getContentPane().add(“North”, panel2); getContentPane().add(“Center”, panel1);for(i = 0;i < str.length;i++)buttons[i].addActionListener(this);reset.addActionListener(this);display.addActionListener(this); addWindowListener(new WindowCloser()); setSize(800, 800);setVisible(true);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);elsehandleOperator(label);}boolean isFirstDigit = true;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;}public void handleReset(){display.setText(“0”);isFirstDigit = true;operator = “=”;}double number = 0.0;String operator = “=”;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();} }2、运行结果,见截图计算测试:123+456=579结果正确,程序无误。
Java小项目

项目五:产生10个不重复的随机数 项目五:产生10个不重复的随机数
项目描述:产生10 10个不重复的随机数 项目描述:产生10个不重复的随机数
8/31
项目六: 项目六:从A~Z 之间随机抽出字母
9/31
项目七: 项目七:日期计算
项目描述:定义一日期类,能定根据初始化的日期进行年、 项目描述:定义一日期类,能定根据初始化的日期进行年、 日的加法操作。 月、日的加法操作。 要求: 要求: 1. 最大月为12,如果超过12,则考虑进位。 最大月为12,如果超过12,则考虑进位。 2. 考虑闰年。 考虑闰年。
3/31
项目二: 项目二:用户管理
项目描述:通过控制台输入用户名与密码, 项目描述:通过控制台输入用户名与密码,并判断用户 名与密码是否正确。 名与密码是否正确。 任务一:创建用户类UserService,实现用户验证方法 任务一:创建用户类UserService,
类名: UserService 类名: 方法: 方法: +validate(String name , String password) : boolean 功能: 功能:验证用户名与密码是否正确 要求: 要求: – 预设用户名为admin,密码为jl001 预设用户名为admin,密码为jl001 – 用户名与密码不区别大小写。 用户名与密码不区别大小写。
项目十: 项目十:图书管理
项目描述:使用List<E>或Map<E>实现图书管理。 实现图书管理。 项目描述:使用List<E>或Map<E>实现图书管理 要求:实现添、 查功能。 要求:实现添、删、改、查功能。
Book -isbn : String -name : String …… +Book() + setter/getter
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JA V A项目实战--------------计算器一、开发环境Eclipse集成开发环境。
二、实现功能加、减、乘、除的整数运算。
三、运用的知识点1、JFrame窗体的使用2、JButton按钮的使用3、JTextFiled输入文本框的使用4、Container容器的使用5、监听事件的使用6、内部类7、If语句8、Switch case 语句9、包10、包的引用11、数据类型之间的转换(String转Int转DoubleDouble.valueOf(String str),Interger.valueOf(String str))四、重点知识的讲解常用窗体窗体作为Swing应用程序中组件的承载体,处于非常重要的位置。
Swing中常用的窗体包括JFrame和JDialog,本节将着重讲解这两个窗体的使用方法。
1、 JFrame窗体JFrame窗体是一个容器,它是Swing程序中各个组件的载体,可以将JFrame看作是承载这些Swing组件的容器。
在开发应用程序时可以通过继承,在这个窗体中添加组件,同时为组件设置事件。
由于该窗体继承了JFrame类,所以它拥有“最大化”、“最小化”和关闭等按钮。
下面将详细讲解JFrame窗体在Java应用程序中的使用方法。
JFrame在程序中的语法格式如下:JFrame jf=new JFrame(title):Container container=jf getContentPane0;参数含义如下:jf:JFrame类的对象container:Container类的对象,可以使用JFrame对象调用getContentPane()方法获取。
读者大致应该有这样一个概念,Swing组件的窗体通常与组件和容器相关,所以在JFrame对象创建完成后,需要调用getContentPane()方法将窗体转换为容器,然后在容器中添加组件或设置布局管理器。
通常,这个容器用来包含和显示组件。
如果需要将组件添加至容器,可以使用来自Container类的add()方法进行设置。
例如:container.add(new JButton("按钮”)); //Button按钮组件在容器添加组件后,也可以使用Container类的remove()方法将这些组件从容器中删除。
例如container remove(new JButton("按钮”));下面的实例中实现了JFrame对象创建一个窗体,并在其中添加一个组件。
【例】在项目中创建Examplel类,该类继承JFrame类成为窗体类,在该类中创建标签组件,并添加到窗体界面中。
import ;import ;import ;import ;import ;import ;public class Example1 extends JFrame { //定义一个类继承JFrame类public Example1(String titile){ //定义一个构造方法,构造一个窗体。
JFrame jf = new JFrame(titile);//实例化一个JFrame对象Container container = jf.getContentPane();//获取一个容器JLabel jl = new JLabel("这是一个JFrame窗体");//实例化一个JLabel对象//使标签上的文字居中jl.setHorizontalAlignment(SwingConstants.CENTER);container.add(jl); //将标签添加到容器中container.setBackground(Color.WHITE);//设置容器的背景颜色jf.setVisible(true);//设置窗体可视jf.setSize(400, 400);//设置窗体大小//设置窗体关闭方式jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] args) {//在主方法中构造一个窗体new Example1("创建一个JFrame窗体");}}运行本实例程序,结果如图所示。
在例中,Exatplel类继承了JFrame类,在Example1(String titile)方法中实例化JFrmne对象。
JFrame类的常用构造方法包括以下两种形式public JFrame()。
public JFrame(String title).JFrame类中的两种构造方法分别为无参的构造方法与有参的构造方法,第1种形式的构造方法可以创建一个初始不可见、没有标题的新窗体;第2种形式的构造方法在实例化该JFrame对象时可以创建一个不可见但具有标题的窗体。
可以使用JFrme对像调用show()方法使窗体可见,但是该方法早已被新版JDK所弃用,通常使用setVisible(true)方法使窗体可见。
同时可以使用setSize(int x,int y)方法设置窗体大小,其中x与y 变量分别代表窗体的宽与高。
创建窗体后,需要给予窗体一个关闭方式,可以调用setDefaultCloseOperation()方法关闭窗体。
Java为窗体关闭提供了多种方式,常用的有以下4种1、DO_NOTHING_ON_CLOSE。
2、DISPOSE_ON_CLOSE。
3、HIDE_ON_CLOSE。
4、EXTT_ON_CLOSE。
第1种窗体退出方式代表什么都不做就将窗体关闭;第2种退出方式则代表任何注册监听程序对象后会自动隐藏并释放窗体;第3种方式表示隐藏窗口的默认窗口关闭;第4种退出方式表示退出应用程序默认窗口关闭。
2、JDialog窗体JDialog窗体是Swing组件中的对话框,它继承了AWT组件java.awtDialog类。
JDialog窗体的功能是从一个窗体中弹出另一个窗体,就像是在使用IE 浏览器时弹出的确定对话框一样。
JDialog窗体实质上就是另一种类型的窗体,它与JFrame窗体类似,在使用时也需要调用getContentPane()方法将窗体转换为容器,然后在容器中设置窗体的特性。
在应用程序中创建JDialog窗体需要实例化JDialog类,通常使用以下几个JDialog类的构造方法。
public JDialog():创建一个没有标题和父窗体的对话框。
public JDialog(Frame f): 创建一个指定父窗体的对话框,但该窗体没有标题。
public JDialog(Frame f,boolean model):创建一个指定类型的对话框,并指定父窗体,但该窗体没有指定标题。
public JDialog(Frame f,String title):创建一个指定标题和父窗体的对话框。
public JDialog(Frame f String titleboolean model):创建一个指定标题、窗体和模式的对话框。
下面来看一个实例,该实例主要实现单击JFrme窗体中的按钮后,弹出一个对话框窗体。
【例】在项目中创建MyJDialog类,该类继承JDialog窗体,并在窗口中添加按钮,当用户点击该按钮后,将弹出一个对话框窗体。
本实例代码如下:import ;import ;import ;import ;import ;import ;import ;import ;public class MyFrame extends JFrame{public MyFrame(){Container container = getContentPane();//创建一个容器container.setLayout(null);JLabel jl = new JLabel("这是一个JFrame窗体");//在窗体中设置标签//使标签上的文字居中jl.setHorizontalAlignment(SwingConstants.CENTER);container.add(jl);JButton bl = new JButton("弹出对话框");//实例化一个按钮bl.setBounds(10, 10, 100, 21);container.add(bl); //将按钮添加到容器中setSize(400,400); //设置窗体的大小bl.addActionListener(new ActionListener(){//为按钮添加鼠标点击事件@Overridepublic void actionPerformed(ActionEvent e) {//使MyDialog窗体可见new MyDialog(MyFrame.this).setVisible(true);}});}public static void main(String[] args) {new MyFrame().setVisible(true);;}}class MyDialog extends JDialog{public MyDialog(MyFrame frame){//实例化一个JDialog对象,指定对话框的父窗体、窗体标题和类型super(frame ,"第一个Dialog窗体",true);Container container = getContentPane();//创建一个容器container.add(new JLabel("这是一个对话框"));//在容器中添加标签setBounds(120,120,100,100);//设置对话框的大小}}运行本实例,结果如图所示。
在本实例中,为了使对话框在父窗体弹出,定义了一个JFrame窗体,首先在该窗体中定义一个按钮,然后为此按钮添加一个鼠标单击监听事件,这里使用new MyJDialog().setVisible(true)语句使对话框窗体可见,这样就实现了用户单击该按钮后弹出对话框的功能。
在MyJDialog类中,由于它继承了JDialog类,所以可以在构造方法中使用super关键字调用JDialog构造方法。
在这里使用了public JDialog(Frame f,String title, boolean model)这种形式的构造方法,相应地设置了自定义的JFrame窗体以及对话框的标题和窗体类型。
本实例代码中可以看到,JDialog窗体与JFrame窗体形式基本相同,甚至在设置窗体的特性时调用的方法名称都基本相同,如设置窗体大小、窗体关闭状态等。