知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技

用Java编写一个最简单的桌面程序

发表时间:2022-03-25来源:网络

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

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

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

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

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

· 容器调用removeAll()方法能够移除掉容器中的所有组件,调用remove(Component c)方法能够移除掉容器总参数c指定的组件.操作系统

· 容器自己也是一个组件,所以能够把一个容器添加到另外一个容器中实现容器的嵌套.设计

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

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

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

1_一、WindowMenu建立一个带窗口的菜单

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

1_二、菜单条、菜单、菜单项

· 菜单条

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

· 菜单

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

· 菜单项

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

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);

}

}

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜