「java分类代码」java实现分类

博主:adminadmin 2023-03-20 17:31:11 311

本篇文章给大家谈谈java分类代码,以及java实现分类对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java中各种类型的键盘输入代码是什么

下面的是键盘和鼠标的各种事件,看一下是不是你要的!

鼠标监听器

鼠标监听器mouseListener监听鼠标事件MouseEvent。相应事件和处理方法如下表:

鼠标事件 处理方法

MOUSE_CLICKED MouseClicked (MouseEvent) 鼠标点击(单或双)

MOUSE_PRESSED MousePressed (MouseEvent) 鼠标按下

MOUSE_RELEASED MouseReleased(MouseEvent) 鼠标松开

MOUSE_ENTERED MouseEntered (MouseEvent) 鼠标进入(某组件区域)

MOUSE_EXITED MouseExited (MouseEvent) 鼠标离开(某组件区域)

鼠标事件MouseEvent常用方法

int getClickCount() 得到点击次数1 OR 2;

int getX(), int getY() 得到鼠标的(象素)位置。

对于鼠标的移动和拖放,另外用鼠标运动监听器mouseMotionListener。因为许多程序不需要监听鼠标运动,把两者分开可简化程序。有两个方法处理鼠标运动事件:

MOUSE_MOVED MouseMoved (MouseEvent) 鼠标在移动MOUSE_DRAGGED MouseDragged(MouseEvent) 鼠标被拖动

下面的例程演示简单的鼠标监听,并在屏幕上输出鼠标操作的信息。

例2

下面是讨论MouseMotionListener的使用时机,它提供的下面的两个方法,可让你随时掌握鼠标的坐标,并处理拖曳鼠标的操作。

MouseMotionListener mouseDragged(MouseEvent e)

mouseMoved(MouseEvent e)

-----------------------------------------------------------------------

下面的范例让你知道鼠标在JFrame上的坐标,并拖曳出直线来。

MouseDemo3.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

/*为了达到画线的功能,我们分别implements MouseListener与MouseMotionListener.

*/

public class MouseDemo3 extends JFrame implements MouseListener,MouseMotionListener{

int flag;//flag=1代表Mouse Moved,flag=2代表Mouse Dragged

int x=0;

int y=0;

int startx,starty,endx,endy;//起始坐标与终点坐标

public MouseDemo3(){

Container contentPane=getContentPane();

contentPane.addMouseListener(this);

contentPane.addMouseMotionListener(this);

setSize(300,300);

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

flag=2;

x=e.getX();

y=e.getY();

repaint();

}

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.drawString("鼠标坐标:("+x+","+y+";)",10,50);

g.drawLine(startx,starty,endx,endy);

}

if (flag==2){

g.drawString("拖曳鼠标价坐标:("+x+","+y+";)",10,50);

g.drawLine(startx,starty,x,y);

}

}

public static void main(String[] args){

new MouseDemo3();

}

}

例3

实现一个简单的鼠标控制程序MouseController。程序功能很简单:随机移动鼠标并点击左键。

代码如下:

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;

/**

*

*/

/**

* @Create date 2007-11-6

*/

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

try {

Thread.sleep(2000);

} catch (InterruptedException ex) {

ex.printStackTrace();

}

}

}

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

try {

Thread.sleep(60000);

} catch (InterruptedException ex) {

ex.printStackTrace();

}

mc.stop();

System.out.println("Mouse Controller stoped");

}

}

例4 本例程演示鼠标监听器,鼠标点击和运动的监听。

///

// MouseEvt.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

class MyPanel extends JPanel implements MouseMotionListener{

public MyPanel() {

addMouseListener(new MouseAdapter() {

publicvoid mouseClicked(MouseEvent evt) {

if (evt.getClickCount() = 2)

System.out.println("\n双击鼠标");

int x = evt.getX(); int y = evt.getY();

System.out.println("点击鼠标的位置\nX:" + x + "\ty: " + y);

}

});

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("鼠标事件示例程序");

setSize(300, 200);

addWindowListener(new WindowAdapter(){

publicvoid windowClosing(WindowEvent e){

System.exit(0);

}

} );

Container contentPane = getContentPane();

contentPane.add(new MyPanel());

}

}

publicclass MouseEvt{

publicstaticvoid main(String[] args){

JFrame frame = new MyFrame();

frame.setVisible(true);

}

}

///

简要说明

在MyPanel的构建器中添加了鼠标适配器来监听鼠标点击数和位置。也添加了运动监听器来处理移动和拖放操作。

鼠标双击事件

鼠标的单双击事件在很多时候对我们帮助很大,但是在JAVA中却没有给出鼠标双击事件.我们可以通过事件源e.getClickCount()==2来判断鼠标点击次数来实现鼠标双击事件,例如: public class MyMouseListener

extends java.awt.event.MouseAdapter ...{

public void mouseClicked(MouseEvent e) ...{

System.out.println("clicked");

int clickTimes = e.getClickCount();

if (clickTimes == 2) ...{

System.out.println("Doublc Clicked!");

}

}

}

但是这样并没有达到我们的要求,因为在每次触发双击事件的同时会触发单击事件.所以我们试图改进以上方案,不使用系统提供的e.getClickCount()方法.可以考虑当第一次单击鼠标的时候让鼠标单击事件延时0.2秒执行,而在这段时间里等待第二次单击,如果有第二次单击,那么我们执行双击事件任务,取消单击任务;如果在这段时间没有等到再次单击,那么执行单击任务.

下面是用定时器延时单击事件实现鼠标双击事件,单击和双击事件互不影响!

public class MyMouseListener

extends java.awt.event.MouseAdapter ...{

private static boolean flag=false;//用来判断是否已经执行双击事件

private static int clickNum=0;//用来判断是否该执行双击事件

public void mouseClicked(MouseEvent e) ...{

final MouseEvent me=e;//事件源

this.flag=false;//每次点击鼠标初始化双击事件执行标志为false

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

//定时器开始执行,延时0.2秒后确定是否执行单击事件

timer.schedule(new java.util.TimerTask() ...{

private int n=0;//记录定时器执行次数

public void run() ...{

if(MyMouseListener.flag)...{//如果双击事件已经执行,那么直接取消单击执行

n=0;

MyMouseListener.clickNum=0;

this.cancel();

return;

}

if (n == 1) ...{//定时器等待0.2秒后,双击事件仍未发生,执行单击事件

mouseSingleClicked(me);//执行单击事件

MyMouseListener.flag = true;

MyMouseListener.clickNum=0;

n=0;

this.cancel();

return;

}

clickNum++;

n++;

}

},new java.util.Date(),500);

}

/** *//**

* 鼠标单击事件

* @param e 事件源参数

*/

public void mouseSingleClicked(MouseEvent e)...{

System.out.println("Single Clicked!");

}

/** *//**

* 鼠标双击事件

* @param e 事件源参数

*/

public void mouseDoubleClicked(MouseEvent e)...{

System.out.println("Doublc Clicked!");

}

}

//Test.java

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Test extends JFrame{

public Test(){

super("test");

init();

this.setSize(800,600);

this.setVisible(true);

}

private void init(){

JButton b=new JButton("button");

b.setBounds(50,50,100,30);

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

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

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() {

//新建一个文本域组件

tf = new JTextField(20);

add(tf);

//指定用来处理该按钮事件的监听器对象为JPanel本身

myListener = new MyKeyListener();

tf.addKeyListener(myListener);

}

private JTextField tf;

private MyKeyListener myListener;

}

class ButtonFrame extends JFrame{

public ButtonFrame() {

setTitle("键盘事件示例程序");

setSize(300, 200);

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

frame.setVisible(true);

}

}

///简要说明

程序建立了自己的键盘监听器MyKeyListener,定义了一个新方法showKeyEventMsg用来在标准输出设备上显示有关的键盘信息。

在面版ButtonPanel上建立文本框并加键盘监听器。把面版ButtonPanel放到窗口ButtonFrame中。

在线购物商品分类jsp,java代码怎么写,有父类子类的?

N种办法

1、mybatis 配置文件 写SQL 解决

2、通过JAVA service 通过父类信息查询子类并封装

3、提供一个接口,前台二级联动方式,点第一个给后台传值0 ,查询父ID为0 的 当点击第二个联动的时候 把第一个信息的ID 给你传过去,如 电子数码ID 为1 那就传1 后台还是根据父类查询,也就是 父类ID 1 这样就查出 所对应的 子类信息了。

java代码分类查询并分页显示,点击下一页则跳转到不分类查询

你查出“495刀具”这个类别的时候,是加了一个鉴别的条件了吧,所以你能查出“495”道具这个类别总数为85而不是92.

你点击下一页时候却显示了全部的记录,说明你在点击下一页时候,后台程序处理并没有根据“495刀具”这个类别的条件查询,你自己查看下代码。

JAVA根据文件后缀名分类文件,并且将文件复制到不同的文件夹,求这段代码的注释

以下都是one by one letter打的,不容易,给点分吧。

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import javax.swing.JFileChooser;

/**

* 1.选择被复制的源目录:sourcePath

* 2.选择文件被复制后存放的目标目录:targetPath

* 3.文件后缀名分类文件,并且将文件复制到不同的文件夹

*

*/

public class FileDemo {

/**

* 启动方法

* @param args

*/

public static void main(String[] args) {

/**

* 选择被复制的源目录:sourcePath

*/

File sourcePath = getSourcePath();

/**

* 选择文件被复制后存放的目标目录:targetPath

*/

File outputPath = getOutputPath();

/**

* 执行复制操作

*/

handlePath(sourcePath, outputPath);

}

/**

* 处理文件分类复制

* @param sourcePath

* @param outputPath

*/

private static void handlePath(File sourcePath, File outputPath) {

if (sourcePath == null || outputPath == null) //1.如果没有选择源目录或目标目录,则返回

return;

for (File file : sourcePath.listFiles()) { //2.取得源目录下所有的文件或文件夹,并进行遍历

if (file.isDirectory()) {

//3.如果当前遍历的是文件夹,则使用递归调用,继续处理该文件夹下面的所有文件或文件夹

handlePath(file, outputPath);

} else {

//4.如果当前遍历的是不是文件夹而是文件,那么直接开始copy的操作

//4.1.取得文件的文件名,包含文件后缀名

String fileName = file.getName();

if (fileName.contains(".")) {

//4.2.1.如果该文件有后缀名,即包含“.”点符号,则取得文件的后缀名为:最后一个点符号后面的字符串

String suffix = fileName.substring(fileName.lastIndexOf('.') + 1);

//4.2.2.根据文件最后的输出的目标目录和文件的后缀名,执行copy的操作(因为最后输出格式为按文件的后缀名分类,即最后输出如:pdf目录下面有pdf文件,txt目录下面有txt文件)

copy(file, new File(outputPath, suffix));

} else {

//4.3.如果该文件没有后缀名,即不包含“.”点符号,则直接在文件最后的输出的目标目录下建立“nosuffix”目录,执行copy的操作,将没有后缀名的文件复制到nosuffix目录下

copy(file, new File(outputPath, "nosuffix"));

}

}

}

}

/**

* 单个文件复制操作

* @param sourceFile

* @param targetDir

*/

private static void copy(File sourceFile , File targetDir){

System.out.println("copying " + sourceFile);

//1.如果目标目录不存在,则新建,此处的目标目录为按文件后缀名命名的目录,如pdf目录,txt目录以及nosuffix目录

if(!targetDir.exists()){

targetDir.mkdir();//新建目录

}

try {

//2.将源文件读取到输入流中

FileInputStream fis = new FileInputStream(sourceFile);

//3.按照目标目录和文件名构建文件输出流

FileOutputStream fos = new FileOutputStream(new File(targetDir , sourceFile.getName())) ;

//4.定义缓冲区,大小为102400byte

byte[] buf = new byte[102400];

//5.定义输入流读取到的文件大小,下面会用到

int available = 0;

//6.fis.available():使用输入流fis读取当前文件的大小,将读取到的大小赋值给available

while((available = fis.available()) buf.length){

//7.如果当前读取到的大小available大于定义的缓冲区的大小102400,则用fis.read(buf)方法读取文件。

//此时,缓冲区buf会被完全读满,即源文件的前102400 byte的数据都会被读取到buf中,

//fis下一次读取就会从102401 byte开始读,即文件读取的开始位置移动到了available+1的位置上

fis.read(buf);

//8.使用文件输入流fos将缓冲区buf中的内容写入到目标文件中

fos.write(buf);

}

//9.上面的循环始终会结束,因为文件的大小不可能无限的大,当上面循环的判断使用fis.available()读取到当前剩余的文件大小小于102400 byte时,

//使用fis.read(buf, 0, available)将剩余的文件数据读取的buf对应的位置,

//例如,最后剩下的文件数据大小为100 byte,即available的值为100,那么使用执行方法fis.read(buf, 0, available),后,

//buf数组中的buf[0]到buf[99]会有数据,buf[100]之后的就都是空了。

fis.read(buf, 0, available);

//10.调用输出流fos.write(buf, 0, available)表示将buf中的前available大小的数据输出,

//例如上面举得例子,就只会将buf中的前100位数据输出。

fos.write(buf, 0, available);

fis.close();

fos.close();

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* 弹出文件选择对话框,选择要被复制的源目录

* @return

*/

private static File getSourcePath(){

//1.弹出文件选择对话框

JFileChooser chooser = new JFileChooser();

//2.设置只能选择目录

chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

//3.返回选择的目录,如果没有选择则返回null

if(chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){

return chooser.getSelectedFile();

}

return null;

}

/**

* 弹出对话框,选择文件复制后存放的目标目录

* @return

*/

private static File getOutputPath(){

//1.弹出文件选择对话框

JFileChooser chooser = new JFileChooser();

//2.设置只能选择目录

chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

//3.返回选择的目录,如果没有选择则返回null

if(chooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION){

return chooser.getSelectedFile();

}

return null;

}

}

java源代码与字节码文件类型有哪些

java源文件的格式是text/html类型的,可以直接用记事本打开。编码可以是utf-8,也可以是其它类型的。后缀为.java

源文件编译后的字节码是以CAFE BABY开头的二进制文件。需要JVM才能读懂。后缀为.class

一般来说,一个类对应一个字节码文件,内部类编译后也会生成一个单独的字节码文件。字节码文件是以类名来命名(标识)的。

一些相关的字节码文件可以按照包结构打包成jar文件。jar文件和zip文件差不多。

java程序一般都会依赖很多的jar文件,比如最基本的rt.jar。

关于java分类代码和java实现分类的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。