- 浏览: 284832 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
sunxiangyuan131415:
android中设置ListView的选中的Item的背景颜色 -
liu321jie:
正需要呢,非常感谢!!!!!!!!!!
android中设置ListView的选中的Item的背景颜色 -
tmacbo.:
楼主给力!
android中设置ListView的选中的Item的背景颜色 -
eieihihi:
哪里用那么麻烦,ListView().setChoiceMod ...
android中设置ListView的选中的Item的背景颜色 -
雨雾纷飞:
正需要,谢谢分享!
android中设置ListView的选中的Item的背景颜色
/* * CaptureScreen.java * * Created on 2007年8月30日, 下午12:46 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package hadeslee.swing; /** * * @author lbf */ import java.awt.*; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; import java.awt.event.*; import javax.swing.*; import java.io.*; import javax.imageio.*; import java.awt.image.*; public class CaptureScreen extends JFrame implements ActionListener{ private JButton start,cancel,saveAll; private JPanel c; private BufferedImage get; private JTabbedPane jtp;//一个放置很多份图片 private int index;//一个一直会递增的索引,用于标认图片 private JRadioButton java,system;//JAVA界面,系统界面 /** Creates a new instance of CaptureScreen */ public CaptureScreen() { super("屏幕截取软件(第三版)"); try{ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); }catch(Exception exe){ exe.printStackTrace(); } initWindow(); initOther(); initTrayIcon(); } private void initOther(){ jtp=new JTabbedPane(JTabbedPane.TOP,JTabbedPane.SCROLL_TAB_LAYOUT); } private void initWindow(){ start=new JButton("开始截取"); saveAll=new JButton("保存所有"); cancel=new JButton("退出"); start.addActionListener(this); saveAll.addActionListener(this); cancel.addActionListener(this); JPanel buttonJP=new JPanel(); c=new JPanel(new BorderLayout()); c.setBackground(Color.BLACK); JLabel jl=new JLabel("屏幕截取",JLabel.CENTER); JLabel jl1=new JLabel("<Html><Font size=5 color=white>作者:千里冰封<br>" + "QQ:24325142<br><br><br></Font></html>",JLabel.CENTER); jl.setFont(new Font("黑体",Font.BOLD,40)); jl.setForeground(Color.RED); jl1.setForeground(Color.BLUE); c.add(jl,BorderLayout.CENTER); c.add(jl1,BorderLayout.SOUTH); buttonJP.add(start); buttonJP.add(saveAll); buttonJP.add(cancel); buttonJP.setBorder(BorderFactory.createTitledBorder("公共操作区")); JPanel jp=new JPanel();//放两个单选按钮的面板 jp.add(java=new JRadioButton("java界面")); jp.add(system=new JRadioButton("系统界面",true)); java.addActionListener(this); system.addActionListener(this); jp.setBorder(BorderFactory.createTitledBorder("界面风格")); ButtonGroup bg=new ButtonGroup(); bg.add(java); bg.add(system); JPanel all=new JPanel(); all.add(jp); all.add(buttonJP); this.getContentPane().add(c,BorderLayout.CENTER); this.getContentPane().add(all,BorderLayout.SOUTH); this.setSize(500,400); this.setLocationRelativeTo(null); this.setVisible(true); this.setAlwaysOnTop(true); this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ CaptureScreen.this.setVisible(false); } }); } private void initTrayIcon(){ try{ SystemTray st=SystemTray.getSystemTray(); Image im=ImageIO.read(this.getClass().getResource("bg.gif")); PopupMenu pm=new PopupMenu("弹出菜单"); pm.add(new MenuItem("关于")).addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ JOptionPane.showMessageDialog(CaptureScreen.this,"<html><Font color=red><center><h2>关于</h2></center></Font>" + "这是一款纯JAVA的屏幕截取程序<br>在以前的基础上增加了一些常用的功能,<br>" + "比如,批量保存,多幅截取,复制到系统粘帖板<br>" + "在使用过程中有任何问题,欢迎联系.<br>" + "<Font size=5 color=blue>作者:千里冰封<br>" + "<i>QQ:24325142</i><br></Font></html>"); } }); pm.addSeparator(); pm.add(new MenuItem("显示主窗口")).addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ CaptureScreen.this.setVisible(true); } }); pm.add(new MenuItem("开始截取")).addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ doStart(); } }); pm.add(new MenuItem("退出程序")).addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ System.exit(0); } }); TrayIcon ti=new TrayIcon(im,"JAVA屏幕截取",pm); st.add(ti); ti.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ CaptureScreen.this.setVisible(true); } }); }catch(Exception exe){ exe.printStackTrace(); } } private void updates(){ this.setVisible(true); if(get!=null){ //如果索引是0,则表示一张图片都没有被加入过, //则要清除当前的东西,重新把tabpane放进来 if(index==0){ c.removeAll(); c.add(jtp,BorderLayout.CENTER); }else{//否则的话,直接对tabpane添加面板就可以了 //就什么都不用做了 } PicPanel pic=new PicPanel(get); jtp.addTab("图片"+(++index),pic); jtp.setSelectedComponent(pic); SwingUtilities.updateComponentTreeUI(c); } } private void doStart(){ try{ this.setVisible(false); Thread.sleep(500);//睡500毫秒是为了让主窗完全不见 Robot ro=new Robot(); Toolkit tk=Toolkit.getDefaultToolkit(); Dimension di=tk.getScreenSize(); Rectangle rec=new Rectangle(0,0,di.width,di.height); BufferedImage bi=ro.createScreenCapture(rec); JFrame jf=new JFrame(); Temp temp=new Temp(jf,bi,di.width,di.height); jf.getContentPane().add(temp,BorderLayout.CENTER); jf.setUndecorated(true); jf.setSize(di); jf.setVisible(true); jf.setAlwaysOnTop(true); } catch(Exception exe){ exe.printStackTrace(); } } /** *公共方法,处理保存所有的图片 */ public void doSaveAll(){ if(jtp.getTabCount()==0){ JOptionPane.showMessageDialog(this,"图片不能为空!!","错误",JOptionPane.ERROR_MESSAGE); return; } JFileChooser jfc=new JFileChooser("."); jfc.addChoosableFileFilter(new GIFfilter()); jfc.addChoosableFileFilter(new BMPfilter()); jfc.addChoosableFileFilter(new JPGfilter()); jfc.addChoosableFileFilter(new PNGfilter()); int i=jfc.showSaveDialog(this); if(i==JFileChooser.APPROVE_OPTION){ File file=jfc.getSelectedFile(); String about="PNG"; String ext=file.toString().toLowerCase(); javax.swing.filechooser.FileFilter ff=jfc.getFileFilter(); if(ff instanceof JPGfilter){ about="JPG"; } else if(ff instanceof PNGfilter){ about="PNG"; }else if(ff instanceof BMPfilter){ about="BMP"; }else if(ff instanceof GIFfilter){ about="GIF"; } if(ext.endsWith(about.toLowerCase())){ ext=ext.substring(0,ext.lastIndexOf(about.toLowerCase())); } //起一个线程去保存这些图片并显示出进度条 new SaveAllThread(ext,about).setVisible(true); } } //专门用来保存所有图片的线程类,它还要显示出保存的进度条 private class SaveAllThread extends JDialog implements Runnable{ private String name;//文件名头部份 private String ext;//文件格式 private JProgressBar jpb;//一个进度条 private JLabel info;// 一个信息显示条 private int allTask,doneTask;//所有任务,已完成任务 public SaveAllThread(String name,String ext){ super(CaptureScreen.this,"保存",true); this.name=name; this.ext=ext; initWindow(); } private void initWindow(){ jpb=new JProgressBar(); allTask=jtp.getTabCount(); jpb.setMaximum(allTask); jpb.setMinimum(0); jpb.setValue(0); jpb.setStringPainted(true); setProgressBarString(); info=new JLabel("正在保存到:"); this.getContentPane().setBackground(Color.CYAN); this.add(info,BorderLayout.NORTH); this.add(jpb,BorderLayout.SOUTH); this.setUndecorated(true); this.setSize(300,100); this.setLocationRelativeTo(CaptureScreen.this); new Thread(this).start(); } private void setProgressBarString(){ jpb.setString(""+doneTask+"/"+allTask); } public void run(){ try{ for(int i=0;i<allTask;i++){ PicPanel pp=(PicPanel)jtp.getComponentAt(i); BufferedImage image=pp.getImage(); File f= new File(name+(doneTask+1)+"."+ext.toLowerCase()); info.setText("<html><b>正在保存到:</b><br>"+f.toString()+"</html>"); ImageIO.write(image,ext,f); doneTask++; jpb.setValue(doneTask); setProgressBarString(); Thread.sleep(500); } JOptionPane.showMessageDialog(this,"保存完毕!!"); this.dispose(); }catch(Exception exe){ exe.printStackTrace(); this.dispose(); } } } /** *公用的处理保存图片的方法 *这个方法不再私有了 */ public void doSave(BufferedImage get){ try{ if(get==null){ JOptionPane.showMessageDialog(this,"图片不能为空!!","错误",JOptionPane.ERROR_MESSAGE); return; } JFileChooser jfc=new JFileChooser("."); jfc.addChoosableFileFilter(new GIFfilter()); jfc.addChoosableFileFilter(new BMPfilter()); jfc.addChoosableFileFilter(new JPGfilter()); jfc.addChoosableFileFilter(new PNGfilter()); int i=jfc.showSaveDialog(this); if(i==JFileChooser.APPROVE_OPTION){ File file=jfc.getSelectedFile(); String about="PNG"; String ext=file.toString().toLowerCase(); javax.swing.filechooser.FileFilter ff=jfc.getFileFilter(); if(ff instanceof JPGfilter){ about="JPG"; if(!ext.endsWith(".jpg")){ String ns=ext+".jpg"; file=new File(ns); } } else if(ff instanceof PNGfilter){ about="PNG"; if(!ext.endsWith(".png")){ String ns=ext+".png"; file=new File(ns); } }else if(ff instanceof BMPfilter){ about="BMP"; if(!ext.endsWith(".bmp")){ String ns=ext+".bmp"; file=new File(ns); } }else if(ff instanceof GIFfilter){ about="GIF"; if(!ext.endsWith(".gif")){ String ns=ext+".gif"; file=new File(ns); } } if(ImageIO.write(get,about,file)){ JOptionPane.showMessageDialog(this,"保存成功!"); } else JOptionPane.showMessageDialog(this,"保存失败!"); } } catch(Exception exe){ exe.printStackTrace(); } } /** *公共的处理把当前的图片加入剪帖板的方法 */ public void doCopy(final BufferedImage image){ try{ if(get==null){ JOptionPane.showMessageDialog(this,"图片不能为空!!","错误",JOptionPane.ERROR_MESSAGE); return; } Transferable trans = new Transferable(){ public DataFlavor[] getTransferDataFlavors() { return new DataFlavor[] { DataFlavor.imageFlavor }; } public boolean isDataFlavorSupported(DataFlavor flavor) { return DataFlavor.imageFlavor.equals(flavor); } public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { if(isDataFlavorSupported(flavor)) return image; throw new UnsupportedFlavorException(flavor); } }; Toolkit.getDefaultToolkit().getSystemClipboard().setContents(trans, null); JOptionPane.showMessageDialog(this,"已复制到系统粘帖板!!"); }catch(Exception exe){ exe.printStackTrace(); JOptionPane.showMessageDialog(this,"复制到系统粘帖板出错!!","错误",JOptionPane.ERROR_MESSAGE); } } //处理关闭事件 private void doClose(Component c){ jtp.remove(c); c=null; System.gc(); } public void actionPerformed(ActionEvent ae){ Object source=ae.getSource(); if(source==start){ doStart(); } else if(source==cancel){ System.exit(0); }else if(source==java){ try{ UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); SwingUtilities.updateComponentTreeUI(this); }catch(Exception exe){ exe.printStackTrace(); } }else if(source==system){ try{ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); SwingUtilities.updateComponentTreeUI(this); }catch(Exception exe){ exe.printStackTrace(); } }else if(source==saveAll){ doSaveAll(); } } //一个内部类,它表示一个面板,一个可以被放进tabpane的面板 //也有自己的一套处理保存和复制的方法 private class PicPanel extends JPanel implements ActionListener{ JButton save,copy,close;//表示保存,复制,关闭的按钮 BufferedImage get;//得到的图片 public PicPanel(BufferedImage get){ super(new BorderLayout()); this.get=get; initPanel(); } public BufferedImage getImage(){ return get; } private void initPanel(){ save=new JButton("保存(S)"); copy=new JButton("复制到剪帖板(C)"); close=new JButton("关闭(X)"); save.setMnemonic('S'); copy.setMnemonic('C'); close.setMnemonic('X'); JPanel buttonPanel=new JPanel(); buttonPanel.add(copy); buttonPanel.add(save); buttonPanel.add(close); JLabel icon=new JLabel(new ImageIcon(get)); this.add(new JScrollPane(icon),BorderLayout.CENTER); this.add(buttonPanel,BorderLayout.SOUTH); save.addActionListener(this); copy.addActionListener(this); close.addActionListener(this); } public void actionPerformed(ActionEvent e) { Object source=e.getSource(); if(source==save){ doSave(get); }else if(source==copy){ doCopy(get); }else if(source==close){ get=null; doClose(this); } } } //保存BMP格式的过滤器 private class BMPfilter extends javax.swing.filechooser.FileFilter{ public BMPfilter(){ } public boolean accept(File file){ if(file.toString().toLowerCase().endsWith(".bmp")|| file.isDirectory()){ return true; } else return false; } public String getDescription(){ return "*.BMP(BMP图像)"; } } //保存JPG格式的过滤器 private class JPGfilter extends javax.swing.filechooser.FileFilter{ public JPGfilter(){ } public boolean accept(File file){ if(file.toString().toLowerCase().endsWith(".jpg")|| file.isDirectory()){ return true; } else return false; } public String getDescription(){ return "*.JPG(JPG图像)"; } } //保存GIF格式的过滤器 private class GIFfilter extends javax.swing.filechooser.FileFilter{ public GIFfilter(){ } public boolean accept(File file){ if(file.toString().toLowerCase().endsWith(".gif")|| file.isDirectory()){ return true; } else return false; } public String getDescription(){ return "*.GIF(GIF图像)"; } } //保存PNG格式的过滤器 private class PNGfilter extends javax.swing.filechooser.FileFilter{ public boolean accept(File file){ if(file.toString().toLowerCase().endsWith(".png")|| file.isDirectory()){ return true; } else return false; } public String getDescription(){ return "*.PNG(PNG图像)"; } } //一个暂时类,用于显示当前的屏幕图像 private class Temp extends JPanel implements MouseListener,MouseMotionListener{ private BufferedImage bi; private int width,height; private int startX,startY,endX,endY,tempX,tempY; private JFrame jf; private Rectangle select=new Rectangle(0,0,0,0);//表示选中的区域 private Cursor cs=new Cursor(Cursor.CROSSHAIR_CURSOR);//表示一般情况下的鼠标状态 private States current=States.DEFAULT;// 表示当前的编辑状态 private Rectangle[] rec;//表示八个编辑点的区域 //下面四个常量,分别表示谁是被选中的那条线上的端点 public static final int START_X=1; public static final int START_Y=2; public static final int END_X=3; public static final int END_Y=4; private int currentX,currentY;//当前被选中的X和Y,只有这两个需要改变 private Point p=new Point();//当前鼠标移的地点 private boolean showTip=true;//是否显示提示.如果鼠标左键一按,则提示不再显了 public Temp(JFrame jf,BufferedImage bi,int width,int height){ this.jf=jf; this.bi=bi; this.width=width; this.height=height; this.addMouseListener(this); this.addMouseMotionListener(this); initRecs(); } private void initRecs(){ rec=new Rectangle[8]; for(int i=0;i<rec.length;i++){ rec[i]=new Rectangle(); } } public void paintComponent(Graphics g){ g.drawImage(bi,0,0,width,height,this); g.setColor(Color.RED); g.drawLine(startX,startY,endX,startY); g.drawLine(startX,endY,endX,endY); g.drawLine(startX,startY,startX,endY); g.drawLine(endX,startY,endX,endY); int x=startX<endX?startX:endX; int y=startY<endY?startY:endY; select=new Rectangle(x,y,Math.abs(endX-startX),Math.abs(endY-startY)); int x1=(startX+endX)/2; int y1=(startY+endY)/2; g.fillRect(x1-2,startY-2,5,5); g.fillRect(x1-2,endY-2,5,5); g.fillRect(startX-2,y1-2,5,5); g.fillRect(endX-2,y1-2,5,5); g.fillRect(startX-2,startY-2,5,5); g.fillRect(startX-2,endY-2,5,5); g.fillRect(endX-2,startY-2,5,5); g.fillRect(endX-2,endY-2,5,5); rec[0]=new Rectangle(x-5,y-5,10,10); rec[1]=new Rectangle(x1-5,y-5,10,10); rec[2]=new Rectangle((startX>endX?startX:endX)-5,y-5,10,10); rec[3]=new Rectangle((startX>endX?startX:endX)-5,y1-5,10,10); rec[4]=new Rectangle((startX>endX?startX:endX)-5,(startY>endY?startY:endY)-5,10,10); rec[5]=new Rectangle(x1-5,(startY>endY?startY:endY)-5,10,10); rec[6]=new Rectangle(x-5,(startY>endY?startY:endY)-5,10,10); rec[7]=new Rectangle(x-5,y1-5,10,10); if(showTip){ g.setColor(Color.CYAN); g.fillRect(p.x,p.y,170,20); g.setColor(Color.RED); g.drawRect(p.x,p.y,170,20); g.setColor(Color.BLACK); g.drawString("请按住鼠标左键不放选择截图区",p.x,p.y+15); } } //根据东南西北等八个方向决定选中的要修改的X和Y的座标 private void initSelect(States state){ switch(state){ case DEFAULT: currentX=0; currentY=0; break; case EAST: currentX=(endX>startX?END_X:START_X); currentY=0; break; case WEST: currentX=(endX>startX?START_X:END_X); currentY=0; break; case NORTH: currentX=0; currentY=(startY>endY?END_Y:START_Y); break; case SOUTH: currentX=0; currentY=(startY>endY?START_Y:END_Y); break; case NORTH_EAST: currentY=(startY>endY?END_Y:START_Y); currentX=(endX>startX?END_X:START_X); break; case NORTH_WEST: currentY=(startY>endY?END_Y:START_Y); currentX=(endX>startX?START_X:END_X); break; case SOUTH_EAST: currentY=(startY>endY?START_Y:END_Y); currentX=(endX>startX?END_X:START_X); break; case SOUTH_WEST: currentY=(startY>endY?START_Y:END_Y); currentX=(endX>startX?START_X:END_X); break; default: currentX=0; currentY=0; break; } } public void mouseMoved(MouseEvent me){ doMouseMoved(me); initSelect(current); if(showTip){ p=me.getPoint(); repaint(); } } //特意定义一个方法处理鼠标移动,是为了每次都能初始化一下所要选择的地区 private void doMouseMoved(MouseEvent me){ if(select.contains(me.getPoint())){ this.setCursor(new Cursor(Cursor.MOVE_CURSOR)); current=States.MOVE; } else{ States[] st=States.values(); for(int i=0;i<rec.length;i++){ if(rec[i].contains(me.getPoint())){ current=st[i]; this.setCursor(st[i].getCursor()); return; } } this.setCursor(cs); current=States.DEFAULT; } } public void mouseExited(MouseEvent me){ } public void mouseEntered(MouseEvent me){ } public void mouseDragged(MouseEvent me){ int x=me.getX(); int y=me.getY(); if(current==States.MOVE){ startX+=(x-tempX); startY+=(y-tempY); endX+=(x-tempX); endY+=(y-tempY); tempX=x; tempY=y; }else if(current==States.EAST||current==States.WEST){ if(currentX==START_X){ startX+=(x-tempX); tempX=x; }else{ endX+=(x-tempX); tempX=x; } }else if(current==States.NORTH||current==States.SOUTH){ if(currentY==START_Y){ startY+=(y-tempY); tempY=y; }else{ endY+=(y-tempY); tempY=y; } }else if(current==States.NORTH_EAST||current==States.NORTH_EAST|| current==States.SOUTH_EAST||current==States.SOUTH_WEST){ if(currentY==START_Y){ startY+=(y-tempY); tempY=y; }else{ endY+=(y-tempY); tempY=y; } if(currentX==START_X){ startX+=(x-tempX); tempX=x; }else{ endX+=(x-tempX); tempX=x; } }else{ startX=tempX; startY=tempY; endX=me.getX(); endY=me.getY(); } this.repaint(); } public void mousePressed(MouseEvent me){ showTip=false; tempX=me.getX(); tempY=me.getY(); } public void mouseReleased(MouseEvent me){ if(me.isPopupTrigger()){ if(current==States.MOVE){ showTip=true; p=me.getPoint(); startX=0; startY=0; endX=0; endY=0; repaint(); } else{ jf.dispose(); updates(); } } } public void mouseClicked(MouseEvent me){ if(me.getClickCount()==2){ //Rectangle rec=new Rectangle(startX,startY,Math.abs(endX-startX),Math.abs(endY-startY)); Point p=me.getPoint(); if(select.contains(p)){ if(select.x+select.width<this.getWidth()&&select.y+select.height<this.getHeight()){ get=bi.getSubimage(select.x,select.y,select.width,select.height); jf.dispose(); updates(); }else{ int wid=select.width,het=select.height; if(select.x+select.width>=this.getWidth()){ wid=this.getWidth()-select.x; } if(select.y+select.height>=this.getHeight()){ het=this.getHeight()-select.y; } get=bi.getSubimage(select.x,select.y,wid,het); jf.dispose(); updates(); } } } } } public static void main(String args[]){ SwingUtilities.invokeLater(new Runnable(){ public void run(){ new CaptureScreen(); } }); } } //一些表示状态的枚举 enum States{ NORTH_WEST(new Cursor(Cursor.NW_RESIZE_CURSOR)),//表示西北角 NORTH(new Cursor(Cursor.N_RESIZE_CURSOR)), NORTH_EAST(new Cursor(Cursor.NE_RESIZE_CURSOR)), EAST(new Cursor(Cursor.E_RESIZE_CURSOR)), SOUTH_EAST(new Cursor(Cursor.SE_RESIZE_CURSOR)), SOUTH(new Cursor(Cursor.S_RESIZE_CURSOR)), SOUTH_WEST(new Cursor(Cursor.SW_RESIZE_CURSOR)), WEST(new Cursor(Cursor.W_RESIZE_CURSOR)), MOVE(new Cursor(Cursor.MOVE_CURSOR)), DEFAULT(new Cursor(Cursor.DEFAULT_CURSOR)); private Cursor cs; States(Cursor cs){ this.cs=cs; } public Cursor getCursor(){ return cs; } }
要使用jdk1.6
发表评论
-
在使用RMI时,有时候要涉及到许可的问题,需要在客户端配置安全策略
2012-03-28 16:16 1388在使用RMI时,有时候要涉及到许可的问题,需要在客户端配置安全 ... -
对象的压缩和解压
2010-12-22 15:17 964public class QueryPropertyGroup ... -
在JSP中输入中文后保存,出现Save could not be completed.异常信息框
2010-09-23 05:45 2225在JSP中输入中文后保存,出现Save could not b ... -
Synth的XML配置(2)
2009-12-01 15:41 12061、style元素,是设置XML ... -
JAR打包的命令
2008-09-22 10:42 1537环境:JBuilder2006 java: jdk ... -
String
2008-06-13 01:05 1175一、替换 replaceAll(String o ... -
Swing中设置按Tab键后焦点的顺序
2008-06-11 18:52 7510Swing中设置按Tab键后焦点的顺序 import ja ... -
eclipse快捷键大全
2008-06-05 17:42 839eclipse快捷键大全 1. ... -
Eclipse中设置编码的方式(转)
2008-06-05 17:29 2186如果要使插件 ... -
Java中的Drag and Drop代码示例与详解(改)
2008-05-29 16:30 6386这是修改“Java中的Drag and Dro ... -
JTree使用经验总结
2008-05-29 09:51 2144private JTree jtNetDevice;//数组件 ... -
Eclipse常用快捷键
2008-05-28 23:51 885** Ctrl+D: 删除当前行 **** Ctrl ... -
程序员注意:Java开发最容易犯的21种错误(转)
2008-05-26 14:06 932发布时间:2008.05.22 08 ...
相关推荐
第四部分:心得体会 - **学习体会**:分享在项目开发过程中的收获和感悟。 - **改进建议**:提出项目中存在的不足之处及改进建议。 - **未来展望**:对个人或项目未来发展方向的看法。 #### 三、编写建议 - **...
Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...
在本资源中,我们主要探讨的是JSP(JavaServer Pages)程序设计技术,特别是通过一个实际项目的第四章实训来深入理解这一技术。JSP是一种基于Java的服务器端脚本语言,用于生成动态网页内容。本教程的核心是通过实践...
本实验报告是针对大学生JAVA程序设计课程的,基于吕凤翥第二版教材,旨在通过实际操作加深对JAVA语言的理解,特别是GUI(图形用户界面)菜单设计方面的能力培养。实验的主要目标是让学生掌握菜单设计、弹出菜单设计...
- Java SE (Standard Edition) 是用于开发桌面应用程序的标准版 Java 平台。 - 选择正确的 Java 版本对于后续的开发工作至关重要。 3. **关键知识点**: - **Java SE**: 主要用于开发桌面应用,包含了基本的 ...
Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证...
3. 时间安排上,你需要在第6周的星期四(4月3日)提交报告。这意味着你需要提前规划好时间,确保有足够的时间完成实验、调试代码和撰写报告。 在撰写报告时,可以按照以下结构进行: - 引言:简单介绍实验的目标和...
#### 三十一、Java大学教程(JavaHowtoProgram)(第四版)中文版 这本书详细介绍了Java编程的基本概念和技术,适合大学阶段的Java课程教学。 #### 三十二、Java+Eclipse实战视频教程第一集 这份教程通过10集的视频...
- **丁振凡**,《Java语言实用教程实验指导(第2版)》[M],北京邮电大学出版社,2008.1 - **杨树林等**,《Java语言最新实用案例教程(第2版)》[M],清华大学出版社,2010.7 #### 七、课程设计进度安排 1. **准备阶段...
5. 如果设计题目来源于《Java课程设计案例精编(第二版)》,则需要在此基础上增加1-2项新功能。 课程设计报告应包含以下部分: 1. 封面 2. 目录 3. 系统描述:介绍系统的功能和解决的问题 4. 分析与设计:功能模块...
- **第四步:** 在`WEB-INF`目录下新建`web.xml`文件。该文件用于定义Web应用的基本配置信息。文件的内容如下: ```xml <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi=...
在本节中,我们将深入探讨如何从零开始搭建SpringCloud项目,并通过源码分析和相关截图来理解这一过程。SpringCloud作为一个微服务框架,提供了一系列工具和服务,帮助开发者快速构建分布式系统。它包括服务发现、...
实验结果以截图的形式展示,可以直观地看到输入表达式经过语义分析后的四元式序列,从而验证程序的正确性。 在“src”目录下,包含了实验的主要源代码,这些代码实现了递归下降分析器的各种函数,对应于文法的不同...
#### 八、第一个Java程序:HelloWorld ```java class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } } ``` 1. **程序结构**: - 定义类:`class HelloWorld`...
词法分析是编译器的第一个阶段,它的任务是识别源代码中的关键字、标识符、常量、运算符等基本元素。在这个实验中,词法分析器可能通过扫描输入的字符流,根据预定义的正则表达式来识别不同的标记。每个识别出的标记...
《Java2实用教程(第三版)》北京清华大学出版社2006.8 - [2] 朱福喜.《Java语言程序设计》.北京清华大学出版社.2005 - [3] 朱福喜,尹为民,余振坤.《Java语言与面向对象程序设计》.武汉武汉大学出版社.2002 ...
《JSP实用教程案例及素材》是一本专为学习Java Server Pages(JSP)技术而设计的实践指导书籍。该书以丰富的实例为载体,帮助读者深入理解和掌握JSP的基本概念、语法特性以及在实际开发中的应用。通过本书,读者可以...
java学习 该系统对应于上次我们演示的jsp学生管理系统,如果想看jsp的学生管理系统请在我的博客或者视频列表里查看,地址最后会给出的。这款Java swing实现的学生信息管理系统和jsp版本的功能很相似,简单的实现了...
这款Java swing实现的学生信息管理系统和jsp版本的功能很相似,简单的实现了班级信息的增删改查,学生信息的增删改查,数据库采用的是mysql,jdk版本不限,是Java学习者学习参考非常好的一个小项目,下面我们来看看...