JAVA代码规范:
(1) 类名首字母应该大写.字段、方法以及对象(句柄)的首字母应小写.对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母.例如:
ThisIsAClassName
thisIsMethodOrFieldName
若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母.这样便可标志出它们属于编译期的常数.
equals()
hashCode()
toString()
clone()(implement Cloneable)
implement Serializable
■一个复杂的开关语句:考虑采用"多形"机制
■数量众多的方法涉及到类型差别极大的操作:考虑用几个类来分别实现
■许多成员变量在特征上有很大的差别:考虑使用几个类
(11) 尽可能细致地加上注释,并用javadoc注释文档语法生成自己的程序文档.
下面的是键盘和鼠标的各种事件,看一下是不是你要的!
鼠标监听器
鼠标监听器mouseListener监听鼠标事件MouseEvent.相应事件和处理方法如下表:
鼠标事件 处理方法
MOUSE_PRESSED MousePressed (MouseEvent) 鼠标按下
MOUSE_RELEASED MouseReleased(MouseEvent) 鼠标松开
MOUSE_ENTERED MouseEntered (MouseEvent) 鼠标进入(某组件区域)
MOUSE_EXITED MouseExited (MouseEvent) 鼠标离开(某组件区域)
鼠标事件MouseEvent常用方法
int getX(), int getY() 得到鼠标的(象素)位置.
对于鼠标的移动和拖放,另外用鼠标运动监听器mouseMotionListener.因为许多程序不需要监听鼠标运动,把两者分开可简化程序.有两个方法处理鼠标运动事件:
MOUSE_MOVED MouseMoved (MouseEvent) 鼠标在移动MOUSE_DRAGGED MouseDragged(MouseEvent) 鼠标被拖动
下面的例程演示简单的鼠标监听,并在屏幕上输出鼠标操作的信息.
下面是讨论MouseMotionListener的使用时机,它提供的下面的两个方法,可让你随时掌握鼠标的坐标,并处理拖曳鼠标的操作.
MouseMotionListener mouseDragged(MouseEvent e)
mouseMoved(MouseEvent e)
-----------------------------------------------------------------------
下面的范例让你知道鼠标在JFrame上的坐标,并拖曳出直线来.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/*为了达到画线的功能,我们分别implements MouseListener与MouseMotionListener.
*/
int x=0;
int y=0;
int startx,starty,endx,endy;//起始坐标与终点坐标
Container contentPane=getContentPane();
contentPane.addMouseListener(this);
contentPane.addMouseMotionListener(this);
show();
addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
);
/*由mousePressed(),mouseReleased()取得示拖曳的开始与结束坐标*/
public void mousePressed(MouseEvent e){
startx=e.getX();
starty=e.getY();
public void mouseReleased(MouseEvent e){
endx=e.getX();
endy=e.getY();
public void mouseEntered(MouseEvent e){ }
public void mouseExited(MouseEvent e){ }
public void mouseClicked(MouseEvent e){ }
/*mouseMoved(),mouseDragged()取得鼠标移动的每一个坐标,并调用repaint()方法*/
public void mouseMoved(MouseEvent e){
flag=1;
x=e.getX();
y=e.getY();
repaint();
public void mouseDragged(MouseEvent e){
public void update(Graphics g){
g.setColor(this.getBackground());
g.fillRect(0,0,getWidth(),getHeight());
paint(g);
public void paint(Graphics g){
g.setColor(Color.black);
if (flag==1){
g.drawLine(startx,starty,endx,endy);
g.drawLine(startx,starty,x,y);
public static void main(String[] args){
代码如下:
import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.InputEvent;
import java.util.Random;
/**
*
public class MouseController implements Runnable {
private Dimension dim;
private Random rand;
private Robot robot;
private volatile boolean stop = false;
public MouseController() {
dim = Toolkit.getDefaultToolkit().getScreenSize();
rand = new Random();
try {
robot = new Robot();
} catch (AWTException ex) {
ex.printStackTrace();
public void run() {
while(!stop) {
int x = rand.nextInt(dim.width);
int y = rand.nextInt(dim.height);
robot.mouseMove(x, y);
robot.mousePress(InputEvent.BUTTON1_MASK);
} catch (InterruptedException ex) {
public synchronized void stop() {
stop = true;
public static void main(String[] args) {
MouseController mc = new MouseController();
Thre
$False$
ad mcThread = new Thread(mc);
System.out.println("Mouse Controller start");
mcThread.start();
mc.stop();
System.out.println("Mouse Controller stoped");
///
// MouseEvt.java
class MyPanel extends JPanel implements MouseMotionListener{
public MyPanel() {
addMouseListener(new MouseAdapter() {
publicvoid mouseClicked(MouseEvent evt) {
System.out.println("\n双击鼠标");
int x = evt.getX(); int y = evt.getY();
});
addMouseMotionListener(this);
publicvoid mouseMoved(MouseEvent evt){
System.out.println("\n鼠标正在移动");
publicvoid mouseDragged(MouseEvent evt){
System.out.println("\n鼠标正在拖动");
class MyFrame extends JFrame{
public MyFrame(){
setTitle("鼠标事件示例程序");
addWindowListener(new WindowAdapter(){
publicvoid windowClosing(WindowEvent e){
} );
Container contentPane = getContentPane();
contentPane.add(new MyPanel());
publicclass MouseEvt{
publicstaticvoid main(String[] args){
JFrame frame = new MyFrame();
frame.setVisible(true);
简要说明
鼠标双击事件
extends java.awt.event.MouseAdapter ...{
public void mouseClicked(MouseEvent e) ...{
System.out.println("clicked");
int clickTimes = e.getClickCount();
System.out.println("Doublc Clicked!");
下面是用定时器延时单击事件实现鼠标双击事件,单击和双击事件互不影响!
public class MyMouseListener
private static boolean flag=false;//用来判断是否已经执行双击事件
private static int clickNum=0;//用来判断是否该执行双击事件
final MouseEvent me=e;//事件源
if (this.clickNum == 1) ...{//当clickNum==1时执行双击事件
this.mouseDoubleClicked(me);//执行双击事件
this.clickNum=0;//初始化双击事件执行标志为0
this.flag=true;//双击事件已执行,事件标志为true
return;
//定义定时器
java.util.Timer timer=new java.util.Timer();
timer.schedule(new java.util.TimerTask() ...{
private int n=0;//记录定时器执行次数
public void run() ...{
if(MyMouseListener.flag)...{//如果双击事件已经执行,那么直接取消单击执行
n=0;
MyMouseListener.clickNum=0;
this.cancel();
mouseSingleClicked(me);//执行单击事件
MyMouseListener.flag = true;
clickNum++;
n++;
/** *//**
* 鼠标单击事件
* @param e 事件源参数
public void mouseSingleClicked(MouseEvent e)...{
System.out.println("Single Clicked!");
* 鼠标双击事件
public void mouseDoubleClicked(MouseEvent e)...{
//Test.java
public class Test extends JFrame{
public Test(){
super("test");
init();
this.setVisible(true);
private void init(){
JButton b=new JButton("button");
this.getContentPane().setLayout(null);
this.getContentPane().add(b);
b.addMouseListener(new MyMouseListener());
public static void main(String args[]){
new Test();
键盘监听器
键盘监听器KeyListener用来监听键盘事件.键盘事件有三种:KEY_PRESSED键按下了,KEY_RELEASED键松开了,KEY_TYPED键按过了.每个键都有一个键码,普通键的键码就是ASCII码.键码可通过int getKeyCode()方法获得.Java设置了一种"虚拟键码"(Virtual Key Code),用"VK_"作为前缀,例如VK_G.下面是某些特殊键的虚拟键码.
键码 含义 键码 含义
VK_LEFT/VK_RIGHT 左右方向键 VK_CONTROL Ctrl键
VK_KP_UP 小键盘向上 VK_ATL Alt键
VK_PAUSE 暂停键 VK_SHIFT Shift键
VK_NUMBER0 小键盘数字0 VK_F1 功能键F1
VK_0 数字键0 VK_B 字母键B
虚拟键码对应的是键位,不区分大小写.要想知道大小写还必须查看修饰键(modifier key).这由输入事件InputEvent的getModifere()方法得到,把返回值与常量SHIFT_MASK, CONTROL_MASK, ALT_MASK比较,用以判定哪个修饰键处于"同时按下"状态.
监听器KeyListener有三个方法keyPressed(KeyEvent evt),keyReleased(KeyEvent evt),keyTyped(KeyEvent evt),分别用于相应事件发生后的处理.下面的例程中给自己的键盘监听器建立了showKeyEventMsg方法来显示按键信息.
除了getKeyCode()方法得到键码外,还可用getKeyChar()方法得到输入的字符,用getKeyText(code)方法得到输入的字符串.用isShiftDown()判断shift键是否被按下等.当按下Control键时getKeyText返回的是"ctrl",Alt和Shift也类似.
下面的例子演示得到键码和字符的方法,在命令行上显示结果.
例1 本例程演示键盘监听器后键码的用法.
// KeyEvt.java
class MyKeyListener implements KeyListener{
publicvoid keyPressed(KeyEvent evt) {
System.out.println("\n按键被按下");
showKeyEventMsg(evt);
publicvoid keyReleased(KeyEvent evt){ }
publicvoid keyTyped(KeyEvent evt) { }
privatevoid showKeyEventMsg(KeyEvent evt){//显示按键事件信息
//得到按键对应的整型数
int code = evt.getKeyCode();
//返回按键事件所代表的字符
char c = evt.getKeyChar();
//得到代表按键的字符串
String szText = evt.getKeyText(code);
if (code != KeyEvent.VK_UNDEFINED)
System.out.println("\n按键对应的整型数:"+code);
if (c != KeyEvent.CHAR_UNDEFINED)
System.out.println("\n与按键相联系的字符:"+c);
if (evt.isShiftDown())
System.out.println("\n按键Shift被按下");
System.out.println("\n按键本身的字符串:"+szText);
class ButtonPanel extends JPanel{
public ButtonPanel() {
//新建一个文本域组件
add(tf);
//指定用来处理该按钮事件的监听器对象为JPanel本身
myListener = new MyKeyListener();
tf.addKeyListener(myListener);
private JTextField tf;
private MyKeyListener myListener;
class ButtonFrame extends JFrame{
public ButtonFrame() {
setTitle("键盘事件示例程序");
setLocation(100,100);
addWindowListener(new WindowAdapter() {
publicvoid windowClosing(WindowEvent e)
{ System.exit(0);
Container ctPane = getContentPane();
ctPane.add(new ButtonPanel());
publicclass KeyEvt{
publicstaticvoid main(String[] args) {
JFrame frame = new ButtonFrame();
///简要说明
程序建立了自己的键盘监听器MyKeyListener,定义了一个新方法showKeyEventMsg用来在标准输出设备上显示有关的键盘信息.
在面版ButtonPanel上建立文本框并加键盘监听器.把面版ButtonPanel放到窗口ButtonFrame中.
最简单的java代码肯定就是这个了,如下:
public class MyFirstApp
{
public static void main(String[] args)
System.out.print("Hello world");
publicT?voidParallelRecursive(final?Executorexec,ListNodeTnodes,CollectionT?results){
for(NodeT?n:nodes){
exec.execute(new?Runnable(){
public?void?run(){
results.add(n.compute());
parallelRecursive(exec,n.getChildren(),results);
publicTCollectionTgetParallelResults(ListNodeTnodes)
throws?InterruptedException{
ExecutorService?exec=Executors.newCachedThreadPool();
QueueT?resultQueue=newConcurrentLinkedQueueT();
parallelRecursive(exec,nodes,resultQueue);
exec.shutdown();
exec.awaitTermination(Long.MAX_VALUE,TimeUnit.SECONDS);
return?reslutQueue;
java语言编写事件处理程序主要有两种方案:一个是程序重设方法handleEvent(Event),采用这个方案的程序工作量稍大.另一个是程序实现一些系统设定的接口.java按事件类型提供多种接口,作为监视器对象的类需要实现相应的接口,即实现响应事件的方法.当事件发生时,系统内设的handleEvent(Event evt)方法就自动调用监视器的类实现的响应事件的方法.
java.awt.event包中用来检测并对事件做出反应的模型包括以下三个组成元素:
(1)源对象:事件发生在这个组件上,它与一组侦听该事件的对象保持着联系.
JAVA程序分为三种,Application,Applet,Serverlets.
依次介绍这三种类型:
①.、Application,即"Java应用程序",是可以独立运行的Java程序,由Java解释器控制执行,也是最常见的类型.
扩展资料
JAVA语言特点:
①.、高性能
Java是一种先编译后解释的语言,所以它不如全编译性语言快.但是有些情况下性能是很要紧的,为了支持这些情况,Java设计者制作了"及时"编译程序,它能在运行时把Java字节码翻译成特定CPU(中央处理器)的机器代码,也就是实现全编译了.
Java字节码格式设计时考虑到这些"及时"编译程序的需要,所以生成机器代码的过程相当简单,它能产生相当好的代码.
Java设计成支持在网络上应用,它是分布式语言.Java既支持各种层次的网络连接,又以Socket类支持可靠的流(stream)网络连接,所以用户可以产生分布式的客户机和服务器.
网络变成软件应用的分布运载工具.Java程序只要编写一次,就可到处运行.
Java使得语言声明不依赖于实现的方面.例如,Java显式说明每个基本数据类型的大小和它的运算行为(这些数据类型由Java语法描述).
Java环境本身对新的硬件平台和操作系统是可移植的.Java编译程序也用Java编写,而Java运行系统用ANSIC语言编写.
以上就是土嘎嘎小编为大家整理的java不同方案种类代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!