国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 互联网 > JAVA学习第五十八课 ― GUI

JAVA学习第五十八课 ― GUI

来源:程序员人生   发布时间:2014-11-13 09:00:45 阅读次数:1964次

GUI

Graghical User Interface(图形用户接口)

java为GUI提供的对象都存在java.awt和java.swing包中


Java的GUI做的的确干不过C++等,不打算浪费过量的时间在这上面

1个简单的窗体演示

public static void main(String[] args){ Frame f = new Frame("新窗体"); f.setLocation(400, 200);//设置窗体的位置 f.setSize(500, 400);//设置窗口大小 //f.setBounds(400, 200, 500, 400);功能相当于上面两句 f.setLayout(new FlowLayout());//设置 流式 布局 Button bt = new Button("1个按钮"); f.add(bt); f.setVisible(true);//显示窗口 }

显示出窗体后发现没法关闭窗体,就用到了事件监听机制

其组成:事件源(组件)、事件(Event)、监听器(Listener)、事件处理(引发事件后处理方式)

 

public static void main(String[] args){ Frame f = new Frame("新窗体"); f.setLocation(400, 200);//设置窗体的位置 f.setSize(500, 400);//设置窗口大小 //f.setBounds(400, 200, 500, 400);功能相当于上面两句 f.setLayout(new FlowLayout());//设置 流式 布局 Button bt = new Button("1个按钮"); f.add(bt); //由于关不掉这1事件, 要注册1个监听器 //窗体适配器类WindowAdapter,已覆盖了所有方法,便捷于创建监听器 f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e){ System.exit(0); } });//添加窗体监听 f.setVisible(true);//显示窗口 }

用户对组件操作,就是1个事件,那末产生事件的组件就是事件源。

ActionListener演示:

public static void main(String[] args){ Frame f = new Frame("新窗体"); f.setLocation(400, 200);//设置窗体的位置 f.setSize(500, 400);//设置窗口大小 //f.setBounds(400, 200, 500, 400);功能相当于上面两句 f.setLayout(new FlowLayout());//设置 流式 布局 Button bt = new Button("1个按钮"); f.add(bt); //由于关不掉这1事件, 要注册1个监听器 //窗体适配器类WindowAdapter,已覆盖了所有方法,便捷于创建监听器 f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e){ System.exit(0); } });//添加窗体监听 //在按钮上添加1个监听事件:点击1下退出 bt.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { //System.out.println("按了"); System.exit(0); } }); f.setVisible(true);//显示窗口 }

键盘和鼠标监听事件

import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.TextField; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class Main { private Frame f; private TextField tf;//文本框 private Button bt; public Main(){ init(); } private void init(){ f = new Frame("鼠标和键盘监听"); bt = new Button("按钮"); f.setBounds(400, 200, 500, 400); f.setLayout(new FlowLayout()); tf = new TextField(40);//指定列数 f.add(tf); f.add(bt); myEvent(); f.setVisible(true); } private void myEvent(){ //给文本框添加键盘监听 tf.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) {//按下 //System.out.println("key Pressed : "+e.getKeyChar()+" : "+e.getKeyCode()+" : "+e.getKeyText(e.getKeyCode()));//按下即打印 /* int code = e.getKeyCode(); if(!(code>=KeyEvent.VK_0 && code <= KeyEvent.VK_9))//判断 { System.out.println("必须数字"); e.consume();//使用,不会依照默许的事件处理方式 } if(e.getKeyCode()==KeyEvent.VK_ENTER){//按下回车 System.out.println("enter....."); } */ if(e.isControlDown() && e.getKeyCode()==KeyEvent.VK_ENTER){//按下Ctrl+回车 System.out.println("Crtl enter....."); } } }); //在窗体上添加退出监听器 f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e){ System.exit(0); } }); //在按钮上添加鼠标监听器 bt.addMouseListener(new MouseAdapter() { private int count = 1;//计数器 public void mouseEntered(MouseEvent e) {//鼠标碰到即触发 tf.setText("mouse enter : "+count++);//信息添加到文本框 } public void mouseClicked(MouseEvent e) {//点击 if(e.getClickCount()==2){//得到点击次数,双击 System.out.println("mouseClicked Double click"); } /*else if(e.getClickCount()==1){ System.out.println("mouseClicked only click"); }*/ } }); } public static void main(String[] args){ new Main(); } }

关于Swing包中的,需要在Ecplice安装插件。


生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生