用Java编写一个最简单的桌面程序
使用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编写一个最简单的桌面程序相关推荐
- 告诉你怎么编写一个最简单的单片机程序
转载自:http://www.elecfans.com/d/726077.html 本文转载自网络,如有侵权,请联系删除. 在汇编语言中,让某个端口输出高电平或低电平都有专用的语句,以P1.0端口为例 ...
- java如何编写一个qq宠物程序_肿么用java编写一个QQ宠物喂食的程序?
1)程序运行开始的时候,提示输出两个文件的路径: 2)程序一行一行比较,当其中有一行不一样的时候,提示文件内容不同的行数以及内容: 3)如果文件内容一样,提示用户内容一样. package buffe ...
- java实现通话_Java做一个最简单的通话程序
Java做一个最简单的通话程序 作者:未知 文章来源:www.jspcn.net 发布日期:2005年01月19日 Java中的网络编程是一个很重要的部分,也是其编程优越性的地方之一.在Java ...
- java编写存钱_用Java编写一个简单的存款
package desposit.money; public class DespositMoney { public static void main(String[] args) { Custom ...
- 用java编写一个简单计算器
java 采用java编写一个简单计算器,使用awt和swing 代码如下: import java.awt.Color; import java.awt.Font; import java.awt. ...
- 如何用java编写一个简单的多人PK游戏
如何用java编写一个简单的多人PK游戏 类与对象---PK游戏的编写 素材取用----王者荣耀和BILIBILI 创建两个对战的角色(PK游戏最少需要两名角色) 创建孙尚香和Van 设置孙尚香和Va ...
- 一步一步SharePoint 2007之二十三:编写一个最简单的WebPart(1)——创建工程
摘要 在前面的文章中,我们讲解了很多基础的内容,主要包括安装配置.Form认证等.可能这些对很多朋友来说,是太容易了.那么,从下一篇文章开始,就让我们进入SharePoint的高级课题之旅吧. 本篇文 ...
- 一步一步SharePoint 2007之二十五:编写一个最简单的WebPart(3)——添加WebPart
下面将记录每一步的操作过程. 1.首先按照前面讲解过的方法打开网站的Site Settings管理主页面. 2.在Site Settings管理主页面中点击Web parts,即可进入Web Part ...
- 停车场管理系统 java_使用java编写一个停车场管理系统
使用java编写一个停车场管理系统 发布时间:2020-11-30 16:00:28 来源:亿速云 阅读:145 作者:Leah 这篇文章给大家介绍使用java编写一个停车场管理系统,内容非常详细,感 ...
最新文章
- dataframe在groupby之后,选其中的某列作为画图的新index
- 扎克伯格的中文夜:想要成功就不能放弃
- 接口使用jwt返回token_API接口JWT方式的Token认证(下),客户端(Android)的实现
- android、apple PUSH 异同比较
- C语言标准库<math.h>
- VS里面关于.cpp文件与.cu文件混合编译问题---不要在.cpp文件声明核函数(__device__()和global__())
- 1008 数组元素右移k位
- PAT甲级题考点(转载各个大佬)
- 全网首发:SHELL多个判断条件,不会短路
- js替换字符串中的${xxx}
- 使用Python快速实现人脸融合
- 2023秋招大厂经典面试题及答案整理归纳(101-120)校招必看
- 机器人出卢安娜飓风_LOL:卢安娜的飓风已经过时?哪些英雄还会出这件装备?...
- Python求圆的面积和周长
- 加班、加人、延期是糟糕的办法
- ubuntu LuCI
- 数据库——实验八 触发器实验
- 用Matlab实现车牌分割(可识别大部分蓝色、绿色车牌)
- [G星计划]--项目开发总结
- DTMF的概念和技术