zoukankan      html  css  js  c++  java
  • 第十三周课程总结

    第十三周课程总结

    一、键盘事件及监听处理

    定义

    KeyListener接口方法:

    如果想要取得键盘输入的内容,则可以通过KeyEvent取得。

    KeyEvent事件的常用方法:

    例如:

    package diyishiba;
    
    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;
    
    import javax.swing.*;
    
    public class Key implements KeyListener{
    	
    	JFrame jfr=new JFrame("窗口");
    	JTextArea jte=new JTextArea();
    	JScrollPane jsc=new JScrollPane(jte,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    	public Key() {
    		jte.addKeyListener(this);
    		jfr.add(jsc);
    		jfr.setSize(400,300);
    		jfr.setVisible(true);
    	}
    	public void keyTyped(KeyEvent e) {
    		jte.append("键盘输入的是"+e.getKeyChar()+"
    ");
    	}
    
    	
    	public void keyPressed(KeyEvent e) {
    		jte.append("键盘按下的是"+e.getKeyText(e.getKeyCode())+"
    ");
    	}
    	
    	
    	public void keyReleased(KeyEvent e) {
    		jte.append("键盘松开时的是"+e.getKeyText(e.getKeyCode())+"
    ");
    		
    	}
    	
    }
    

    测试类:

    package diyishiba;
    
    public class test11 {
    
    	public static void main(String[] args) {
    		new Key();
    
    	}
    
    }
    

    运行截图:

    二、鼠标事件及监听处理

    定义:

    MouseListener接口的方法:


    MouseEvent事件的常用方法:

    例如:

    package diyishiba;
    
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    
    public class MouseL implements MouseListener{
    
    	JFrame jfr=new JFrame("窗口");
    	JTextArea jte=new JTextArea();
    	JScrollPane jsc=new JScrollPane(jte,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    	public MouseL() {
    		jte.addMouseListener(this);
    		jfr.add(jsc);
    		jfr.setSize(300, 400);
    		jfr.setVisible(true);
    	}
    	public void mouseClicked(MouseEvent e) {
    		int i=e.getButton();
    		String j=null;
    		if(i==MouseEvent.BUTTON1) {
    			j="左键";
    		}
    		else if(i==MouseEvent.BUTTON3) {
    			j="右键";
    		}
    		jte.append("鼠标单击的是"+j+"
    ");
    	}
    
    	@Override
    	public void mousePressed(MouseEvent e) {
    		// TODO 自动生成的方法存根
    		
    	}
    
    	@Override
    	public void mouseReleased(MouseEvent e) {
    		// TODO 自动生成的方法存根
    		
    	}
    
    	@Override
    	public void mouseEntered(MouseEvent e) {
    		jte.append("鼠标进入文本框"+"
    ");
    		
    	}
    
    	@Override
    	public void mouseExited(MouseEvent e) {
    		jte.append("鼠标离开文本框"+"
    ");
    		
    	}
    	
    }
    

    测试类:

    package diyishiba;
    
    public class Test12 {
    
    	public static void main(String[] args) {
    		new MouseL();
    
    	}
    
    }
    

    运行截图

    三、鼠标拖拽事件及监听处理:

    定义:

    MouseMotionListener接口的方法:

    例如:

    package diyishiba;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseMotionListener;
    import javax.swing.JFrame;
    public class MouseMotionL implements MouseMotionListener{
    	JFrame jfr=new JFrame("窗口");
    	public MouseMotionL() {
    		jfr.addMouseMotionListener(this);
    		jfr.setSize(400, 300);
    		jfr.setVisible(true);
    	}
    	@Override
    	public void mouseDragged(MouseEvent e) {
    		System.out.println("鼠标拖拽到:X="+e.getX()+",Y="+e.getY());
    		
    	}
    
    	@Override
    	public void mouseMoved(MouseEvent e) {
    		System.out.println("鼠标移动到窗口");
    		
    	}
    	
    }
    

    测试类:

    package diyishiba;
    
    public class Test13 {
    
    	public static void main(String[] args) {
    		new MouseMotionL();
    	}
    
    }
    

    运行截图:

    四、单选钮:JRadioButton

    定义:

    JRadioButton类的常用方法:

    例如:

    package diyishiba;
    import javax.swing.BorderFactory;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import java.awt.GridLayout;
    public class JRadioB {
    	JFrame jfr;
    	JPanel jpa;
    	JRadioButton jra1,jra2,jra3;
    	public JRadioB() {
    		jfr=new JFrame("窗口");
    		jpa=new JPanel();
    		jra1=new JRadioButton("和平精英");
    		jra2=new JRadioButton("王者荣耀");
    		jra3=new JRadioButton("不玩游戏");
    		
    		jpa.setBorder(BorderFactory.createTitledBorder("请选择平时喜欢玩的游戏"));
    		jpa.setLayout(new GridLayout(1,3));
    		jpa.add(jra1);
    		jpa.add(jra2);
    		jpa.add(jra3);
    		
    		jfr.add(jpa);
    		jfr.setSize(330, 80);
    		jfr.setVisible(true);
    	}
    }
    

    测试类:

    package diyishiba;
    
    public class Test13 {
    
    	public static void main(String[] args) {
    		new JRadioB();
    	}
    
    }
    

    运行截图:

    因为没有加单选按钮组所以可以多选,加上之后如下:

    package diyishiba;
    import javax.swing.BorderFactory;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import java.awt.GridLayout;
    import javax.swing.ButtonGroup;
    public class JRadioB {
    	JFrame jfr;
    	JPanel jpa;
    	JRadioButton jra1,jra2,jra3;
    	ButtonGroup group;
    	public JRadioB() {
    		jfr=new JFrame("窗口");
    		jpa=new JPanel();
    		jra1=new JRadioButton("和平精英");
    		jra2=new JRadioButton("王者荣耀");
    		jra3=new JRadioButton("不玩游戏");
    		group=new ButtonGroup();
    		
    		jpa.setBorder(BorderFactory.createTitledBorder("请选择平时喜欢玩的游戏"));
    		jpa.setLayout(new GridLayout(1,3));
    		jpa.add(jra1);
    		jpa.add(jra2);
    		jpa.add(jra3);
    		
    		group.add(jra1);
    		group.add(jra2);
    		group.add(jra3);
    		
    		
    		jfr.add(jpa);
    		jfr.setSize(330, 80);
    		jfr.setVisible(true);
    	}
    }
    

    测试类

    package diyishiba;
    
    public class Test13 {
    
    	public static void main(String[] args) {
    		new JRadioB();
    	}
    
    }
    

    运行截图:

    从这里可以看出,加上ButtonGroup方法后就只能单选了。

    从这次写代码中又学到了一些新的知识点,就是怎么加一个有标题的边框,如下图:运用setBorder方法添加一个边框。


    五、JRadioButton事件处理

    定义:

    ItemListener接口的方法:

    此方法中存在ItemEvent事件,此事件的常用方法及常量如下图所示:

    例如:

    package diyishiba;
    import javax.swing.BorderFactory;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import java.awt.GridLayout;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    import javax.swing.ButtonGroup;
    public class JRadioB implements ItemListener{
    	JFrame jfr;
    	JPanel jpa;
    	JRadioButton jra1,jra2,jra3;
    	ButtonGroup group;
    	public JRadioB(){
    		jfr=new JFrame("窗口");
    		jpa=new JPanel();
    		jra1=new JRadioButton("和平精英");
    		jra2=new JRadioButton("王者荣耀");
    		jra3=new JRadioButton("不玩游戏");
    		group=new ButtonGroup();
    		
    		
    		jra1.addItemListener(this);
    		jra2.addItemListener(this);
    		jra3.addItemListener(this);
    		
    		
    		jpa.setBorder(BorderFactory.createTitledBorder("请选择平时喜欢玩的游戏"));
    		jpa.setLayout(new GridLayout(1,3));
    		jpa.add(jra1);
    		jpa.add(jra2);
    		jpa.add(jra3);
    		
    		
    		group.add(jra1);
    		group.add(jra2);
    		group.add(jra3);
    		
    		
    		jfr.add(jpa);
    		jfr.setSize(330, 80);
    		jfr.setVisible(true);
    	}
    	@Override
    	public void itemStateChanged(ItemEvent e) {
    		if(e.getSource()==jra1) {
    			if(e.getStateChange()==ItemEvent.SELECTED) {
    				JOptionPane.showMessageDialog(null, "你的选择是"+jra1.getText());
    			}
    		}
    		else if(e.getSource()==jra2) {
    			if(e.getStateChange()==ItemEvent.SELECTED) {
    				JOptionPane.showMessageDialog(null, "你的选择是"+jra2.getText());
    			}
    		}
    		else if(e.getSource()==jra3) {
    			if(e.getStateChange()==ItemEvent.SELECTED) {
    				JOptionPane.showMessageDialog(null, "你的选择是"+jra3.getText());
    			}
    		}
    		
    	}
    }
    

    测试类:

    package diyishiba;
    
    public class Test13 {
    
    	public static void main(String[] args) {
    		new JRadioB();
    	}
    
    }
    

    运行截图:

    从这次写代码中也学到了一个新的知识点,可以运用JOptionPane方法弹出窗口,如下图所示:

    六、菜单组件

    定义:

    JMenuBar的常用方法:

    JMenu的常用方法:

    例如:

    package diyishiba;
    import java.awt.*;
    import javax.swing.*;
    public class Jmenub {
    	JFrame frame;
    	JTextArea area;
    	JMenu menu1,menu2;
    	JMenuBar bar;
    	public Jmenub() {
    		frame=new JFrame("窗口");
    		area=new JTextArea();
    		menu1=new JMenu("文件");
    		menu2=new JMenu("编辑");
    		bar=new JMenuBar();
    		
    		
    	
    		bar.add(menu1);
    		bar.add(menu2);
    		
    		frame.setJMenuBar(bar);
    		frame.add(area);
    		frame.setSize(300, 100);
    		frame.setVisible(true);
    	}
    }
    

    测试类:

    package diyishiba;
    
    public class Test13 {
    
    	public static void main(String[] args) {
    		new Jmenub();
    	}
    
    }
    

    运行截图:

  • 相关阅读:
    python中获取python版本号的方法
    Unity3D 的大场景内存优化
    Unity中的内存泄漏
    HDR和bloom效果的区别和关系
    用TexturePacker打图集用于UGUI中
    Lua的闭包详解(终于搞懂了)
    深入浅出!从语义角度分析隐藏在Unity协程背后的原理
    Unity3D导入3DMax模型缩放单位问题深入分析
    Unite 2017 | 从《闹闹天宫》看MOBA游戏里的网络同步技术
    Unity声音-音源组件
  • 原文地址:https://www.cnblogs.com/lcbxhda/p/11916951.html
Copyright © 2011-2022 走看看