黑马程序员技术交流社区
标题:
关于最近GUI的学习
[打印本页]
作者:
dsh
时间:
2014-10-9 12:27
标题:
关于最近GUI的学习
没有接触界面学习的同学,一定会对界面产生一种很神秘的感觉,经过昨天的学习让我感觉一种新奇,给我的理解就是不停的在窗体上添加组件,然后给对应的组件添加事件监听,一旦事件发生就执行相应的代码 其他的就跟以前dos命令没有什么区别
下面我分享下我的一个小程序
package WindowDemo;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
public class Demo2 {
private static Frame frame; //窗体
private static MenuBar bar1; //菜单栏
private static Menu menu1;//菜单
private static MenuItem mi1;//退出系统菜单项
private static MenuItem mi2;//记事本菜单项
private static MenuItem mi3;//好好学习菜单项
private static Menu menu2;//子菜单
private static MenuItem mi4;//天天向上菜单项
private static MenuItem mi5;//恢复标题菜单项
private static String title;
public static void main(String[] args) {
frame = new Frame();
//初始化窗体
init(frame);
//设置窗体位置
setCenter(frame);
//添加组件
addComponent(frame);
//添加事件监听
addListener();
}
private static void addComponent(Frame frame) {
bar1 = new MenuBar();
menu1 = new Menu("文件");
menu2 = new Menu("更改标题");
//创建菜单项
mi1 = new MenuItem("退出系统");
mi2 = new MenuItem("记事本");
mi3 = new MenuItem("好好学习");
mi4 = new MenuItem("天天向上");
mi5 = new MenuItem("恢复标题");
//添加
menu2.add(mi3);
menu2.add(mi4);
menu2.add(mi5);
menu1.add(menu2);
menu1.add(mi1);
menu1.add(mi2);
bar1.add(menu1);
frame.setMenuBar(bar1);
}
private static void setCenter(Frame frame) {
//获取屏幕的大小
//public static Toolkit getDefaultToolkit() 获取默认工具包。
//public abstract Dimension getScreenSize() n获取屏幕的大小
//获取对象
Toolkit kit = Toolkit.getDefaultToolkit();
//获取屏幕大小
Dimension screenSize = kit.getScreenSize();
//获取窗体大小
Dimension frameSize = frame.getSize();
int width = (screenSize.width-frameSize.width)/2;
int height= (screenSize.height-frameSize.height)/2;
//设置窗体的位置
frame.setLocation(width, height);
}
private static void addListener() {
//恢复标题事件监听
mi5.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.setTitle(title);
}
});
//天天向上事件监听
mi4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.setTitle("天天向上");
}
});
//好好学习事件监听
mi3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.setTitle("好好学习");
}
});
//记事本事件监听
mi2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Runtime run = Runtime.getRuntime();
try {
run.exec("notepad");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
//退出系统事件监听
mi1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
//窗体事件监听
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
private static void init(Frame frame) {
title = "我自己的菜单实例";
frame.setTitle(title);
frame.setSize(600, 400);
//frame.setLocation(400, 300);
//显示窗体
frame.setVisible(true);
}
}
作者:
tiancairc
时间:
2014-10-11 09:52
朋友,做java ee开发的话,不必纠结gui,开发中基本不用。很浪费内存的,
作者:
面具猴
时间:
2014-10-11 10:36
GUI随便看看知道什么原理就行,不用学的很深,以后Android课程中界面开发会单独学,并且和java有区别
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2