使用Java的优势在于网络应用方面,但Java也提供了强大的用于开发桌面程序的API,它们包含在javax.swing包中.使用这个包可以编写简单的Java桌面应用程序.

Java的javax.swing包提供了许多用来设计GUI的组件类,在学习GUI编程时,需要掌握两个概念:容器类(Container)和组件类(Component),以下是GUI编程中经常提到的基本知识点.

· Java把Component类的子类或间接子类创建的对象称为一个组件.

· Java把Container的子类或间接子类创建的对象称为一个容器.

· 可以向容器中添加组件.Container类提供了一个public方法add(),一个容器可以调用这个方法将组件添加到该容器中.

· 容器调用removeAll()方法可以移除掉容器中的全部组件,调用remove(Component c)方法可以移除掉容器总参数c指定的组件.

· 容器本身也是一个组件,因此可以把一个容器添加到另一个容器中实现容器的嵌套.

· 每当容器添加新的组件或移除组件时,应当让容器调用validate方法,以保证容器中的组件能正确显示出来.

接下来用Java编写一个简单的桌面程序。

一个Java的应用程序需要使用JFrame类的实例来提供一个底层容器和操作系统进行交互,当需要一个窗口时,使用JFrame或其子类创建一个对象。窗口也是一个容器,可以向窗口添加组件。需要注意的是,窗口默认被系统添加到显示器屏幕上,一次不允许讲一个窗口添加到另一个容器中。

1_1、WindowMenu创建一个带窗口的菜单

WindowMenu win = new WindowMenu("俄罗斯方块",200,30,900,1000);

1_2、菜单条、菜单、菜单项

· 菜单条

JComponent类的子类JMenubar负责创建菜单条,即JMenubar的一个实例就是一个菜单条。JFrame类中有一个将菜单条放置到窗口中的方法: setJMenuBar (JMenuBar bar);

· 菜单

JComponent类的子类JMenu负责创建菜单项,即JMenu的一个实例就是一个菜单。

· 菜单项

JComponent类的子类JMenuItem负责创建菜单项,即JMenuItem的一个实例就是一个菜单项。

2_1、运行效果如下所示

2_2、源代码

Tetres_windows.java

/*

* 俄罗斯方块的窗体

*/

//import javax.swing.*;

//import java.awt.*;

public class Tetres_windows {

public static void main(String[] args) {

WindowMenu win = new WindowMenu("俄罗斯方块",200,30,900,1000);

}

}

WindowMenu.java

/*

* 俄罗斯方块的菜单

*/

import javax.swing.*;

import java.awt.event.InputEvent;

import java.awt.event.KeyEvent;

import javax.swing.JFrame.*;

public class WindowMenu extends JFrame {

JMenuBar menubar;

JMenu menu0,menu1,menu2,subMenu;

JMenuItem item1,item2,item3;

public WindowMenu(String s,int x,int y,int w,int h) {

init(s);

setLocation(x,y);

setSize(w,h);

setVisible(true);

setDefaultCloseOperation(DISPOSE_ON_CLOSE);

}

void init(String s) {

setTitle(s);

menubar = new JMenuBar();

menu0 = new JMenu("游戏"); //菜单栏的第一个选项

item1 = new JMenuItem("新游戏(new)");

item2 = new JMenuItem("重新开始");

menu0.add(item1);

menu0.addSeparator(); //设置子菜单之间的分割线

menu0.add(item2);

menu0.addSeparator(); //设置子菜单之间的分割线

subMenu = new JMenu("难度等级");

menu0.add(subMenu);

subMenu.add(new JMenuItem("初级"));

subMenu.add(new JMenuItem("中级"));

subMenu.add(new JMenuItem("高级"));

menu0.addSeparator();

item3 = new JMenuItem("退出");

menu0.add(item3);

menubar.add(menu0);

menu1 = new JMenu("编辑"); //菜单栏的第二个选项

item1 = new JMenuItem("后退一步");

menu1.add(item1);

menu1.addSeparator(); //设置子菜单之间的分割线

item2 = new JMenuItem("前进一步");

menu1.add(item2);

menubar.add(menu1);

menu2 = new JMenu("关于");

item1 = new JMenuItem("作者:rwxian");

menu2.add(item1);

menu2.addSeparator();

item2 = new JMenuItem("版本:v1.0");

menu2.add(item2);

menubar.add(menu2);

setJMenuBar(menubar);

}

}

用Java编写一个最简单的桌面程序相关推荐

  1. 告诉你怎么编写一个最简单的单片机程序

    转载自:http://www.elecfans.com/d/726077.html 本文转载自网络,如有侵权,请联系删除. 在汇编语言中,让某个端口输出高电平或低电平都有专用的语句,以P1.0端口为例 ...

  2. java如何编写一个qq宠物程序_肿么用java编写一个QQ宠物喂食的程序?

    1)程序运行开始的时候,提示输出两个文件的路径: 2)程序一行一行比较,当其中有一行不一样的时候,提示文件内容不同的行数以及内容: 3)如果文件内容一样,提示用户内容一样. package buffe ...

  3. java实现通话_Java做一个最简单的通话程序

    Java做一个最简单的通话程序 作者:未知    文章来源:www.jspcn.net 发布日期:2005年01月19日 Java中的网络编程是一个很重要的部分,也是其编程优越性的地方之一.在Java ...

  4. java编写存钱_用Java编写一个简单的存款

    package desposit.money; public class DespositMoney { public static void main(String[] args) { Custom ...

  5. 用java编写一个简单计算器

    java 采用java编写一个简单计算器,使用awt和swing 代码如下: import java.awt.Color; import java.awt.Font; import java.awt. ...

  6. 如何用java编写一个简单的多人PK游戏

    如何用java编写一个简单的多人PK游戏 类与对象---PK游戏的编写 素材取用----王者荣耀和BILIBILI 创建两个对战的角色(PK游戏最少需要两名角色) 创建孙尚香和Van 设置孙尚香和Va ...

  7. 一步一步SharePoint 2007之二十三:编写一个最简单的WebPart(1)——创建工程

    摘要 在前面的文章中,我们讲解了很多基础的内容,主要包括安装配置.Form认证等.可能这些对很多朋友来说,是太容易了.那么,从下一篇文章开始,就让我们进入SharePoint的高级课题之旅吧. 本篇文 ...

  8. 一步一步SharePoint 2007之二十五:编写一个最简单的WebPart(3)——添加WebPart

    下面将记录每一步的操作过程. 1.首先按照前面讲解过的方法打开网站的Site Settings管理主页面. 2.在Site Settings管理主页面中点击Web parts,即可进入Web Part ...

  9. 停车场管理系统 java_使用java编写一个停车场管理系统

    使用java编写一个停车场管理系统 发布时间:2020-11-30 16:00:28 来源:亿速云 阅读:145 作者:Leah 这篇文章给大家介绍使用java编写一个停车场管理系统,内容非常详细,感 ...

最新文章

  1. dataframe在groupby之后,选其中的某列作为画图的新index
  2. 扎克伯格的中文夜:想要成功就不能放弃
  3. 接口使用jwt返回token_API接口JWT方式的Token认证(下),客户端(Android)的实现
  4. android、apple PUSH 异同比较
  5. C语言标准库<math.h>
  6. VS里面关于.cpp文件与.cu文件混合编译问题---不要在.cpp文件声明核函数(__device__()和global__())
  7. 1008 数组元素右移k位
  8. PAT甲级题考点(转载各个大佬)
  9. 全网首发:SHELL多个判断条件,不会短路
  10. js替换字符串中的${xxx}
  11. 使用Python快速实现人脸融合
  12. 2023秋招大厂经典面试题及答案整理归纳(101-120)校招必看
  13. 机器人出卢安娜飓风_LOL:卢安娜的飓风已经过时?哪些英雄还会出这件装备?...
  14. Python求圆的面积和周长
  15. 加班、加人、延期是糟糕的办法
  16. ubuntu LuCI
  17. 数据库——实验八 触发器实验
  18. 用Matlab实现车牌分割(可识别大部分蓝色、绿色车牌)
  19. [G星计划]--项目开发总结
  20. DTMF的概念和技术

热门文章

  1. redis db0-db15
  2. 「干货」Linux-Java线上故障全套路排查
  3. 二次元卡通角色渲染实现
  4. android.mk多个module,Android.mk中的变量的使用介绍(二)
  5. 2022.06.07 前端-uniApp跨域解决办法
  6. sklearn决策树预剪枝
  7. 苏州新导RFID智能仓储物流管理系统介绍
  8. 打砖块游戏代码 java swing
  9. 【报告分享】 2020年度中国主要城市交通分析报告-高德地图(附下载)
  10. 《Adobe Dreamweaver CS6中文版经典教程》——导读