自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2)
  • 资源 (37)
  • 收藏
  • 关注

原创 springmvc学习一

[img]http://sishuok.com/forum/upload/2012/7/14/57ea9e7edeebd5ee2ec0cf27313c5fb6__2.JPG[/img][code="java"]//前端控制器分派方法protected void doDispatch(HttpServletRequest request, HttpServletResponse respon...

2015-12-24 09:27:14 79

原创 展示一下编程的魅力,1997年程序大赛冠军作品

2009-10-15 15:02:00 769 2

ZeroTier One.msi

ZeroTier 是一款非常简单易用的内网穿透工具,不需要配置,就能实现虚拟局域网的组建,让你可以在外也能连回家中、学校、办公室的电脑获取资料,数据。

2020-12-08

j2me中文教程

Package demo; import javax.microedition.lcdui.Alert; import javax.microedition.lcdui.AlertType; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.TextBox; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; public class Test extends MIDlet implements CommandListener {  private TextBox textbox; // Textbox 显示一条消息  private Display disp; // 引用MIDlet的Display 对象  private Command cmdExit; // 设定按钮用于退出MIDlet  private Command cmdOK; // 确定按钮  private Alert alt; // 信息提示对象  public Test() {   super();   disp = Display.getDisplay(this); // 获得当前MIDlet的Display对象   cmdExit = new Command("退出", Command.SCREEN, 1); // 新建两个控制按钮   cmdOK = new Command("阅读", Command.OK, 1);   textbox = new TextBox("请输入待阅项目序号:", "", 40, 0); // 新建文本框   textbox.addCommand(cmdExit); // 添加控制按钮   textbox.addCommand(cmdOK);   textbox.setCommandListener(this); // 开始侦听命令  }  protected void startApp() throws MIDletStateChangeException {   alt = new Alert("整蛊专家 V1.0");// 开始运行时显示版权信息,新建信息框对象   // 设置显示字符串   alt.setString("==== 整蛊专家 V1.0 ====郎锐2004年作版权所有(C) 2004-2005");   alt.setType(AlertType.INFO); // 设置为普通阅读信息框   alt.setTimeout(Alert.FOREVER); // 信息窗口在按下DONE键后才能进入下一页面   disp.setCurrent(alt, textbox); // 显示信息窗口  }  protected void pauseApp() {}  protected void destroyApp(boolean arg0){}  public void commandAction(Command arg0, Displayable arg1)  {   if (arg0 == cmdExit) { // 按下退出键时停止运行    destroyApp(false);    notifyDestroyed();   }   if (arg0 == cmdOK) { // 按下阅读键后阅读对应信息    TextBox textbox = (TextBox)arg1; // 得到用户输入的内容    String sInfo = textbox.getString();    if (sInfo.equals("1") || sInfo.equals("2") || sInfo.equals("3") || sInfo.equals("4") || sInfo.equals("5")) { // 显示项目1的内容     // 根据所选项目选择要显示的内容     if (sInfo.equals("1")) alt.setString("一兄弟脾气甚……");     if (sInfo.equals("2")) alt.setString("猪的四大愿望……");     if (sInfo.equals("3")) alt.setString("春风里,百花下……");     if (sInfo.equals("4")) alt.setString("为什么……");     if (sInfo.equals("5")) alt.setString("昨夜做了……");     alt.setTitle("您正在阅读短信" + sInfo); // 设置标题    }else{     alt.setString("很抱歉,暂时还没有您选择的项目,请重新输入!");     alt.setTitle("错误警告"); // 设置标题    }    alt.setType(AlertType.INFO); // 设置为普通阅读信息框    alt.setTimeout(Alert.FOREVER); // 信息窗口在按下DONE键后进入下一页面    disp.setCurrent(alt, textbox); // 显示信息窗口   }  } }

2012-10-25

jme3 api(精华chm)

com.jme3.animation com.jme3.app com.jme3.app.state com.jme3.asset com.jme3.asset.pack com.jme3.asset.plugins com.jme3.audio com.jme3.audio.joal com.jme3.audio.lwjgl com.jme3.audio.plugins com.jme3.bounding com.jme3.bullet com.jme3.bullet.collision com.jme3.bullet.collision.shapes com.jme3.bullet.control com.jme3.bullet.joints com.jme3.bullet.joints.motors com.jme3.bullet.nodes com.jme3.bullet.nodes.infos com.jme3.bullet.util com.jme3.collision com.jme3.collision.bih com.jme3.effect com.jme3.export com.jme3.export.binary com.jme3.export.xml com.jme3.font com.jme3.font.plugins com.jme3.input com.jme3.input.awt com.jme3.input.binding com.jme3.input.dummy com.jme3.input.event com.jme3.input.lwjgl com.jme3.light com.jme3.material com.jme3.material.plugins com.jme3.math com.jme3.niftygui com.jme3.post com.jme3.renderer com.jme3.renderer.jogl com.jme3.renderer.layer com.jme3.renderer.lwjgl com.jme3.renderer.queue com.jme3.scene com.jme3.scene.control com.jme3.scene.debug com.jme3.scene.mesh com.jme3.scene.plugins com.jme3.scene.plugins.ogre com.jme3.scene.shape com.jme3.shader com.jme3.shader.plugins com.jme3.shadow com.jme3.system com.jme3.system.jogl com.jme3.system.lwjgl com.jme3.terrain com.jme3.texture com.jme3.texture.plugins com.jme3.ui com.jme3.util com.jme3.util.xml com.jme3.video com.jme3.video.plugins.jheora jme3game.cubefield jme3test jme3test.app jme3test.asset jme3test.audio jme3test.awt jme3test.bounding jme3test.bullet jme3test.collision jme3test.conversion jme3test.effect jme3test.export jme3test.gui jme3test.light jme3test.material jme3test.math jme3test.model jme3test.model.anim jme3test.model.shape jme3test.niftygui jme3test.post jme3test.scene jme3test.stress jme3test.texture jme3tools.converters jme3tools.converters.model jme3tools.converters.model.strip jme3tools.nvtex jme3tools.optimize jme3tools.preview

2012-10-25

Java 3D引擎编程

/** * 3D向量类,用来表示3D向量和3D点。 * @author cyb */ public class Vector3f { public float x,y,z; /**创建一个新的3D向量(0,0,0)*/ public Vector3f() {this(0,0,0);} /**用一个指定的Vector3D来创建一个新的Vector3D类*/ public Vector3f(Vector3f v) {this(v.x, v.y, v.z);} /**用指定的(x,y,z)来创建一个Vector3D类*/ public Vector3f(float x, float y, float z) {this.x = x;this.y = y;this.z = z;} /**用指定的Vector3D设置这个向量*/ public void setTo(Vector3f v) {setTo(v.x, v.y, v.z);} /**用指定的(x,y,z)设置这个向量*/ public void setTo(float x, float y, float z) {this.x = x;this.y = y;this.z = z;} }

2012-10-25

jme初学者教程Starter(Java3D)

import com.jme.app.SimpleGame; import com.jme.scene.shape.Box; import com.jme.math.Vector3f; /** * Started Date: Jul 20, 2004<br><br> * Simple HelloWorld program for jME * * @author Jack Lindamood */ public class HelloWorld extends SimpleGame{ public static void main(String[] args) { HelloWorld app = new HelloWorld(); // Create Object // Signal to show properties dialog app.setDialogBehaviour(SimpleGame.ALWAYS_SHOW_PROPS_DIALOG); app.start(); // Start the program } protected void simpleInitGame() { // Make a box Boxb = new Box("Mybox", new Vector3f(0,0,0), new Vector3f(1,1,1)); rootNode.attachChild(b); // Put it in the scene graph } }

2012-10-25

java与多种数据库连接大全JDBC

java数据库连接 一、jsp连接Oracle8/8i/9i数据库(用thin模式) testoracle.jsp如下: <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> &lt;html&gt; &lt;body&gt; <%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为你的数据库的SID String user="scott"; String password="tiger"; Connection conn= DriverManager.getConnection(url,user,password); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql="select * from test"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()) {%> 您的第一个字段内容为:<%=rs.getString(1)%> 您的第二个字段内容为:<%=rs.getString(2)%> <%}%> <%out.print("数据库操作成功,恭喜你");%> <%rs.close(); stmt.close(); conn.close(); %> &lt;/body&gt; &lt;/html&gt; 二、jsp连接Sql Server7.0/2000数据库 testsqlserver.jsp如下: <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> &lt;html&gt; &lt;body&gt; <%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; //pubs为你的数据库的 String user="sa"; String password=""; Connection conn= DriverManager.getConnection(url,user,password); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql="select * from test"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()) {%> 您的第一个字段内容为:<%=rs.getString(1)%> 您的第二个字段内容为:<%=rs.getString(2)%> <%}%> <%out.print("数据库操作成功,恭喜你");%> <%rs.close(); stmt.close(); conn.close(); %> &lt;/body&gt; &lt;/html&gt; 三、jsp连接DB2数据库 testdb2.jsp如下: <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> &lt;html&gt; &lt;body&gt; <%Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名 String user="admin"; String password=""; Connection conn= DriverManager.getConnection(url,user,password); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql="select * from test"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()) {%> 您的第一个字段内容为:<%=rs.getString(1)%> 您的第二个字段内容为:<%=rs.getString(2)%> <%}%> <%out.print("数据库操作成功,恭喜你");%> <%rs.close(); stmt.close(); conn.close(); %> &lt;/body&gt; &lt;/html&gt; 四、jsp连接Informix数据库 testinformix.jsp如下: <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> &lt;html&gt; &lt;body&gt; <%Class.forName("com.informix.jdbc.IfxDriver").newInstance(); String url = "jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver; user=testuser;password=testpassword"; //testDB为你的数据库名 Connection conn= DriverManager.getConnection(url); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql="select * from test"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()) {%> 您的第一个字段内容为:<%=rs.getString(1)%> 您的第二个字段内容为:<%=rs.getString(2)%> <%}%> <%out.print("数据库操作成功,恭喜你");%> <%rs.close(); stmt.close(); conn.close(); %> &lt;/body&gt; &lt;/html&gt; 五、jsp连接Sybase数据库 testmysql.jsp如下: <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> &lt;html&gt; &lt;body&gt; <%Class.forName("com.sybase.jdbc.SybDriver").newInstance(); String url =" jdbc:sybase:Tds:localhost:5007/tsdata"; //tsdata为你的数据库名 Properties sysProps = System.getProperties(); SysProps.put("user","userid"); SysProps.put("password","user_password"); Connection conn= DriverManager.getConnection(url, SysProps); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql="select * from test"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()) {%> 您的第一个字段内容为:<%=rs.getString(1)%> 您的第二个字段内容为:<%=rs.getString(2)%> <%}%> <%out.print("数据库操作成功,恭喜你");%> <%rs.close(); stmt.close(); conn.close(); %> &lt;/body&gt; &lt;/html&gt; 六、jsp连接MySQL数据库 testmysql.jsp如下: <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> &lt;html&gt; &lt;body&gt; <%Class.forName("org.gjt.mm.mysql.Driver").newInstance(); String url ="jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" //testDB为你的数据库名 Connection conn= DriverManager.getConnection(url); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql="select * from test"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()) {%> 您的第一个字段内容为:<%=rs.getString(1)%> 您的第二个字段内容为:<%=rs.getString(2)%> <%}%> <%out.print("数据库操作成功,恭喜你");%> <%rs.close(); stmt.close(); conn.close(); %> &lt;/body&gt; &lt;/html&gt; 七、jsp连接PostgreSQL数据库 testmysql.jsp如下: <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> &lt;html&gt; &lt;body&gt; <%Class.forName("org.postgresql.Driver").newInstance(); String url ="jdbc:postgresql://localhost/soft" //soft为你的数据库名 String user="myuser"; String password="mypassword"; Connection conn= DriverManager.getConnection(url,user,password); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql="select * from test"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()) {%> 您的第一个字段内容为:<%=rs.getString(1)%> 您的第二个字段内容为:<%=rs.getString(2)%> <%}%> <%out.print("数据库操作成功,恭喜你");%> <%rs.close(); stmt.close(); conn.close(); %> &lt;/body&gt; &lt;/html&gt;

2012-10-24

swing蜘蛛纸牌

import java.awt.*; import java.awt.event.*; import javax.swing.*; public class PKCard extends JLabel implements MouseListener, MouseMotionListener{ //纸牌的位置 Point point = null; Point initPoint = null; int value = 0; int type = 0; String name = null; Container pane = null; Spider main = null; boolean canMove = false; boolean isFront = false; PKCard previousCard = null; public void mouseClicked(MouseEvent arg0){ } public void flashCard(PKCard card){ //启动Flash线程 new Flash(card).start(); //不停的获得下一张牌,直到完成 if(main.getNextCard(card) != null){ card.flashCard(main.getNextCard(card)); } } class Flash extends Thread{ private PKCard card = null; public Flash(PKCard card){ this.card = card; } /* **线程的run()方法 **为纸牌的正面设置白色图片 */ public void run(){ boolean is = false; ImageIcon icon = new ImageIcon("images/white.gif"); for (int i = 0; i < 4; i++){ try{ Thread.sleep(200); } catch (InterruptedException e){ e.printStackTrace(); } if (is){ this.card.turnFront(); is = !is; } else{ this.card.setIcon(icon); is = !is; } // 根据当前外观将card的UI属性重置 card.updateUI(); } } } /** **点击鼠标 */ public void mousePressed(MouseEvent mp){ point = mp.getPoint(); main.setNA(); this.previousCard = main.getPreviousCard(this); } /** **释放鼠标 */ public void mouseReleased(MouseEvent mr){ Point point = ((JLabel) mr.getSource()).getLocation(); //判断可行列 int n = this.whichColumnAvailable(point); if (n == -1 || n == this.whichColumnAvailable(this.initPoint)){ this.setNextCardLocation(null); main.table.remove(this.getLocation()); this.setLocation(this.initPoint); main.table.put(this.initPoint, this); return; } point = main.getLastCardLocation(n); boolean isEmpty = false; PKCard card = null; if (point == null){ point = main.getGroundLabelLocation(n); isEmpty = true; } else{ card = (PKCard) main.table.get(point); } if (isEmpty || (this.value + 1 == card.getCardValue())){ point.y += 40; if (isEmpty) point.y -= 20; this.setNextCardLocation(point); main.table.remove(this.getLocation()); point.y -= 20; this.setLocation(point); main.table.put(point, this); this.initPoint = point; if (this.previousCard != null){ this.previousCard.turnFront(); this.previousCard.setCanMove(true); } this.setCanMove(true); } else{ this.setNextCardLocation(null); main.table.remove(this.getLocation()); this.setLocation(this.initPoint); main.table.put(this.initPoint, this); return; } point = main.getLastCardLocation(n); card = (PKCard) main.table.get(point); if (card.getCardValue() == 1){ point.y -= 240; card = (PKCard) main.table.get(point); if (card != null && card.isCardCanMove()){ main.haveFinish(n); } } } /* **方法:放置纸牌 */ public void setNextCardLocation(Point point){ PKCard card = main.getNextCard(this); if (card != null){ if (point == null){ card.setNextCardLocation(null); main.table.remove(card.getLocation()); card.setLocation(card.initPoint); main.table.put(card.initPoint, card); } else{ point = new Point(point); point.y += 20; card.setNextCardLocation(point); point.y -= 20; main.table.remove(card.getLocation()); card.setLocation(point); main.table.put(card.getLocation(), card); card.initPoint = card.getLocation(); } } } /** **返回值:int **方法:判断可用列 */ public int whichColumnAvailable(Point point){ int x = point.x; int y = point.y; int a = (x - 20) / 101; int b = (x - 20) % 101; if (a != 9){ if (b > 30 && b <= 71){ a = -1; } else if (b > 71){ a++; } } else if (b > 71){ a = -1; } if (a != -1){ Point p = main.getLastCardLocation(a); if (p == null) p = main.getGroundLabelLocation(a); b = y - p.y; if (b <= -96 || b >= 96){ a = -1; } } return a; } public void mouseEntered(MouseEvent arg0){ } public void mouseExited(MouseEvent arg0){ } /** **用鼠标拖动纸牌 */ public void mouseDragged(MouseEvent arg0){ if (canMove){ int x = 0; int y = 0; Point p = arg0.getPoint(); x = p.x - point.x; y = p.y - point.y; this.moving(x, y); } } /** **返回值:void **方法:移动(x,y)个位置 */ public void moving(int x, int y){ PKCard card = main.getNextCard(this); Point p = this.getLocation(); //将组件移动到容器中指定的顺序索引。 pane.setComponentZOrder(this, 1); //在Hashtable中保存新的节点信息 main.table.remove(p); p.x += x; p.y += y; this.setLocation(p); main.table.put(p, this); if (card != null) card.moving(x, y); } public void mouseMoved(MouseEvent arg0){ } /** **构造函数 */ public PKCard(String name, Spider spider){ super(); this.type = new Integer(name.substring(0, 1)).intValue(); this.value = new Integer(name.substring(2)).intValue(); this.name = name; this.main = spider; this.pane = this.main.getContentPane(); this.addMouseListener(this); this.addMouseMotionListener(this); this.setIcon(new ImageIcon("images/rear.gif")); this.setSize(71, 96); this.setVisible(true); } /** **返回值:void **方法:令纸牌显示正面 */ public void turnFront(){ this.setIcon(new ImageIcon("images/" + name + ".gif")); this.isFront = true; } /** **返回值:void **方法:令纸牌显示背面 */ public void turnRear(){ this.setIcon(new ImageIcon("images/rear.gif")); this.isFront = false; this.canMove = false; } /** **返回值:void **方法:将纸牌移动到点point */ public void moveto(Point point){ this.setLocation(point); this.initPoint = point; } /** **返回值:void **方法:判断牌是否能移动 */ public void setCanMove(boolean can){ this.canMove = can; PKCard card = main.getPreviousCard(this); if (card != null && card.isCardFront()){ if (!can){ if (!card.isCardCanMove()){ return; } else{ card.setCanMove(can); } } else{ if (this.value + 1 == card.getCardValue() && this.type == card.getCardType()){ card.setCanMove(can); } else{ card.setCanMove(false); } } } } /** **返回值:boolean **方法:判断card是否是正面 */ public boolean isCardFront(){ return this.isFront; } /* **返回值:boolean **方法:返回是否能够移动 */ public boolean isCardCanMove(){ return this.canMove; } /** **返回值:int **方法:获得card的内容值 */ public int getCardValue(){ return value; } /** **返回值:int **方法:获得card的类型 */ public int getCardType(){ return type; } }

2012-10-24

java播放flash

1 将jflash.dll文件放到C:\WINDOWS\system32目录下; 2 导入jflashplayer.jar包即可使用。

2012-10-24

Select精美下拉框(漂亮)

[removed] // ViaSelect Environment Constants var SS_ENV = new Object(); SS_ENV.IE_Version = new Number(((window.navigator.appVersion.split('; '))[1].split(' '))[1]); SS_ENV.CR = new Object(); SS_ENV.CR.ReverseBackground = '#E2519C'; SS_ENV.CR.ReverseText = 'white'; SS_ENV.CR.Border = '#D55C9A'; SS_ENV.CR.BorderActive = '#FF6CB7'; SS_ENV.DefaultHeight = 20; SS_ENV.ButtonWidth = 13; SS_ENV.OptionsDivStyle = '' + ' display:none;' + ' z-index:10;' + ' position:absolute;' + ' border:1 solid '+ SS_ENV.CR.Border+';' + ' background-color:white;' + ' scrollbar-face-color:#D4D0C8;' + ' scrollbar-shadow-color:white;' + ' scrollbar-highlight-color:#F6F5F4;' + ' scrollbar-3dlight-color:white' + ' scrollbar-darkshadow-color:#86837E;' + ' scrollbar-track-color:#F6F5F4;' + ' scrollbar-arrow-color:#86837E;'; SS_ENV.OptionNobrStyle = '' + ' font-size:12px;' + ' font-family:奔覆;'; // SaySelect Variables var SS_VAR = new Object(); SS_VAR.DivDummy = document.createElement("DIV"); SS_VAR.SelectList = new Array(); SS_VAR.bEventAttached = false; var SS_CreatedElements = new Object(); function unloadObjects() { try { if (SS_VAR && SS_VAR.SelectList) { for (key in SS_VAR.SelectList) { if (SS_VAR.SelectList[key]) { try { SS_VAR.SelectList[key].select.setAttribute('SS', 0); } catch (e) {}; delete SS_VAR.SelectList[key]; } } } } catch (e) {}; } attachEvent("onunload", unloadObjects); function SS_create (srcHTML, ListMax, bAutoDetect) { // property this.ssID = SS_VAR.SelectList.length; this.bOriginalSelect = (bAutoDetect && SS_ENV.IE_Version < 5.5); this.select = SS_createElement(srcHTML); this.selectedIndex = this.select.selectedIndex; this.options = this.select.options; this.width = parseInt(this.select.style.width); this.height = (this.select.style.height) ? parseInt(this.select.style.height) : SS_ENV.DefaultHeight; this.OptionHeight = this.height - 4; this.bListDown = (ListMax && '-'==ListMax.toString().substr(0, 1)) ? false : true; this.ListMax = (!isNaN(parseInt(ListMax))) ? Math.abs(ListMax) : 100; this.Table; this.TitleDiv; this.TitleTable; this.TitleWrapper; this.OptionsDiv; this.OptionsWrapper; this.OptionsTable; this.bFocused = false; this.bExpanded = false; this.bReverse = false; // private method this.isThisEventToBeCanceled = SS_isThisEventToBeCanceled; this.toggleTitle = SS_toggleTitle; this.syncSelectedIndex = SS_syncSelectedIndex; this.toggleOptions = SS_toggleOptions; this.turnOnOption = SS_turnOnOption; this.turnOffOption = SS_turnOffOption; this.handleMousewheel = SS_handleMousewheel; this.handleOverTitle = SS_handleOverTitle; this.handleOutTitle = SS_handleOutTitle; this.handleOverOption = SS_handleOverOption; this.createTable = SS_createTable; this.createTitleDiv = SS_createTitleDiv; this.createOptionsDiv = SS_createOptionsDiv; this.createOptionTr = SS_createOptionTr; this.adjustOptionsDiv = SS_adjustOptionsDiv; this.syncOptions = SS_syncOptions; this.pressOption = SS_pressOption; this.moveOption = SS_moveOption; this.releaseOption = SS_releaseOption; this.pressTitle = SS_pressTitle; this.releaseTitle = SS_releaseTitle; // public method this.display = SS_display; this.insertOption = SS_insertOption; this.deleteOption = SS_deleteOption; this.changeOption = SS_changeOption; // initiate this.createTable(); this.select.setAttribute('SS', this); if (!this.bOriginalSelect) this.select. SS_VAR.SelectList[this.ssID] = this; } function SS_display () { [removed]("<div id=SS_TempDiv></div>\n"); document.all.SS_TempDiv.appendChild(this.Table); document.all.SS_TempDiv.removeNode(); } function SS_write (srcHTML, ListMax, bAutoDetect) { var oSS = new SS_create(srcHTML, ListMax, bAutoDetect); oSS.display(); return oSS; } function SS_insertOption (value, innerText, idx) { var NewOption = document.createElement("OPTION"); SS_CreatedElements[SS_CreatedElements.length] = NewOption; this.options.add(NewOption, idx); NewOption.innerText = innerText; NewOption.value = value; if (!this.bOriginalSelect) this.createOptionTr(idx); this.syncOptions(); this.adjustOptionsDiv(); this.syncSelectedIndex(); } function SS_deleteOption (idx) { this.options.remove(idx); if (!this.bOriginalSelect) this.OptionsTable.deleteRow(idx); this.syncOptions(); this.adjustOptionsDiv(); this.syncSelectedIndex(); } function SS_changeOption (idx, value, innerText) { this.options[idx].value = value; this.options[idx].innerText = innerText; this.syncOptions(); this.syncSelectedIndex(); } function SS_cancelEvent (event) { event.cancelBubble = true; event.returnValue = false; } function SS_isThisEventToBeCanceled (event) { if ('object' == typeof(event)) { switch (event.type) { case 'mousedown': if (!(event.button & 1)) return true; break; case 'mouseup': if (!(event.button & 1)) return true; if (SS_ENV.IE_Version >= 5.5 && event.srcElement != this.srcElementOfLastMousedown && this.srcElementOfLastMousedown != null) { this.srcElementOfLastMousedown = null; return true; } break; case 'mouseout': if (!(SS_ENV.IE_Version < 5.5 && event.srcElement == this.srcElementOfLastMousedown)) return true; break; case 'mousemove': if (SS_ENV.IE_Version >= 5.5 && event.srcElement != this.srcElementOfLastMousedown && this.srcElementOfLastMousedown != null) return true; break; } } return false; } function SS_createElement (html) { SS_VAR.DivDummy.insertAdjacentHTML('afterBegin', html); var oEl = SS_VAR.DivDummy.children(0); while (SS_VAR.DivDummy.children.length > 0) { SS_VAR.DivDummy.removeChild(SS_VAR.DivDummy.children(0)); } return oEl; } function SS_blurExcept (except) { SS_cancelEvent(window.event); except = ('number'==typeof(except)) ? except : -1; var bHasToDetachEvent = true; for (var i=0; i < SS_VAR.SelectList.length; i++) { if (-1==except && SS_VAR.SelectList[i].bFocused && SS_VAR.SelectList[i].bExpanded) { SS_VAR.SelectList[i].toggleOptions(false, true); SS_VAR.SelectList[i].toggleTitle(true); bHasToDetachEvent = false; } else if (i!=except) { if (SS_VAR.SelectList[i].bExpanded) SS_VAR.SelectList[i].toggleOptions(false, true); if (SS_VAR.SelectList[i].bReverse) SS_VAR.SelectList[i].toggleTitle(false); SS_VAR.SelectList[i].bFocused = false; } } if (SS_VAR.bEventAttached && bHasToDetachEvent) { document.detachEvent('onmousedown', SS_blurExcept); document.detachEvent('ondblclick', SS_blurExcept); SS_VAR.bEventAttached = false; } } function SS_syncSelectedIndex () { this.selectedIndex = this.select.selectedIndex; if (this.bOriginalSelect) return; if (this.TitleTable.cells(0).childNodes(0).innerText != this.options[this.selectedIndex].innerText) this.TitleTable.cells(0).childNodes(0).innerText = this.options[this.selectedIndex].innerText; if (this.bExpanded) this.toggleOptions(false); } function SS_toggleTitle (bReverse) { this.bReverse = ('undefined'!=typeof(bReverse)) ? bReverse: (!this.bReverse); this.TitleTable.cells(0).style.backgroundColor = this.bReverse ? SS_ENV.CR.ReverseBackground : ''; this.TitleTable.cells(0).style.color = this.bReverse ? SS_ENV.CR.ReverseText : ''; } function SS_toggleOptions (bExpanded, bStrict) { if (!bStrict && !this.bFocused) { SS_blurExcept(this.ssID); } this.bExpanded = ('undefined'!=typeof(bExpanded)) ? bExpanded: (!this.bExpanded); if (this.bExpanded) { this.adjustOptionsDiv(); this.OptionsDiv.style.display = 'block'; if (!bStrict) { this.toggleTitle(false); this.handleOverOption(this.selectedIndex); } this.handleOutTitle(); } else { this.OptionsDiv.style.display = 'none'; if (!bStrict) { this.toggleTitle(true); } } if (!bStrict) { this.bFocused = true; if (!SS_VAR.bEventAttached) { document.attachEvent('onmousedown', SS_blurExcept); document.attachEvent('ondblclick', SS_blurExcept); SS_VAR.bEventAttached = true; } } } function SS_handlePropertychange () { if ('propertychange'==window.event.type && 'selectedIndex'==window.event.propertyName) { var oSS = window.event.srcElement.SS; oSS.syncSelectedIndex(); if (null != oSS.select.onchange) oSS.select.onchange(); } } function SS_handleMousewheel (event) { var idx = this.selectedIndex; if ('mousewheel'==event.type && this.bFocused && this.bReverse) { for (var i=0; i < event.wheelDelta; i += 120) idx--; for (var i=0; i > event.wheelDelta; i -= 120) idx++; } idx = Math.max(idx, 0); idx = Math.min(idx, this.options.length - 1); this.select.selectedIndex = idx; } function SS_handleOverTitle () { if (this.bExpanded) return; this.TitleTable.style.borderColor = SS_ENV.CR.BorderActive; this.TitleTable.cells(1).style.display = 'none'; this.TitleTable.cells(2).style.display = 'block'; } function SS_handleOutTitle () { this.TitleTable.style.borderColor = SS_ENV.CR.Border; this.TitleTable.cells(2).style.display = 'none'; this.TitleTable.cells(1).style.display = 'block'; } function SS_handleOverOption (idx) { for (var i=0; i < this.options.length; i++) { if (i==idx) this.turnOnOption(i); else this.turnOffOption(i); } } function SS_turnOnOption (idx) { this.OptionsTable.cells(idx).style.color = SS_ENV.CR.ReverseText; this.OptionsTable.cells(idx).style.backgroundColor = SS_ENV.CR.ReverseBackground; } function SS_turnOffOption (idx) { this.OptionsTable.cells(idx).style.color = ''; this.OptionsTable.cells(idx).style.backgroundColor = ''; } function SS_adjustOptionsDiv () { if (this.bOriginalSelect) return; this.OptionsDiv.style.width = this.width; this.OptionsDiv.style.height = Math.min(this.options.length, this.ListMax) * this.OptionHeight + 2; this.OptionsWrapper.style.height = this.options.length * this.OptionHeight; this.OptionsDiv.style.overflowY = (this.options.length > this.ListMax) ? 'scroll' : ''; var top = this.Table.offsetTop; var left = this.Table.offsetLeft; for (var El = this.Table.offsetParent; 'BODY'!=El.tagName && 'absolute'!=El.style.position && 'relative'!=El.style.position; El = El.offsetParent) { if ('TABLE' != El.tagName) { top += El.clientTop; left += El.clientLeft; } top += El.offsetTop; left += El.offsetLeft; } this.OptionsDiv.style.top = (this.bListDown) ? (top + this.height) : (top - parseInt(this.OptionsDiv.style.height)); this.OptionsDiv.style.left = left; this.TitleWrapper.style.top = 0; this.TitleWrapper.style.left = 0; } function SS_syncOptions () { if (this.bOriginalSelect) return; for (var i=0; i < this.options.length; i++) { this.OptionsTable.cells(i).setAttribute('index', i); if (this.OptionsTable.cells(i).childNodes(0).innerText != this.options[i].innerText) this.OptionsTable.cells(i).childNodes(0).innerText = this.options[i].innerText; } } function SS_pressTitle (event) { SS_cancelEvent(event); this.srcElementOfLastMousedown = event.srcElement; this.toggleOptions(); } function SS_releaseTitle (event) { SS_cancelEvent(event); if (this.isThisEventToBeCanceled(event)) return; this.srcElementOfLastMousedown = null; } function SS_pressOption (event) { SS_cancelEvent(event); this.srcElementOfLastMousedown = event.srcElement; } function SS_moveOption (event) { SS_cancelEvent(event); if (this.isThisEventToBeCanceled(event)) return; if (!(event.offsetX >= 0 && event.offsetX <= this.OptionsTable.offsetWidth)) return; this.handleOverOption(Math.floor(event.offsetY / this.OptionHeight)); } function SS_releaseOption (event) { SS_cancelEvent(event); if (this.isThisEventToBeCanceled(event)) return; this.srcElementOfLastMousedown = null; if (event.offsetX >= 0 && event.offsetX <= this.OptionsTable.offsetWidth) { this.toggleOptions(false); this.select.selectedIndex = Math.floor(event.offsetY / this.OptionHeight); } } function SS_createTable () { this.Table = SS_createElement("" + "<table border=0 cellpadding=0 cellspacing=0 cursor:default'>" + "<tr><td></td></tr>" + "</table>" ); if (!isNaN(this.width)) this.Table.style.width = this.width; this.Table.style.height = this.height; if (!this.bOriginalSelect) { this.createTitleDiv(); this.createOptionsDiv(); this.Table.cells(0).appendChild(this.TitleDiv); this.Table.cells(0).appendChild(this.OptionsDiv); } else { this.Table.cells(0).appendChild(this.select); } } function SS_createTitleDiv () { this.TitleDiv = SS_createElement("" + "<div top:0; left:0;'>" + " <table border=0 cellpadding=0 cellspacing=1" + " height="+this.height + " bgcolor=white" + " border:1 solid "+SS_ENV.CR.Border+";'" + " + " >" + " <tr>" + " <td><nobr + " <td width="+SS_ENV.ButtonWidth+" align=center + " <td width="+SS_ENV.ButtonWidth+" align=center + " <td ></td>" + " </tr>" + " </table>" + "</div>" ); this.TitleTable = this.TitleDiv.childNodes(0); this.TitleTable.cells(0).childNodes(0).innerText = this.options[this.selectedIndex].innerText; this.TitleTable.cells(1)[removed] = "<img src='btn_down.gif'>"; this.TitleTable.cells(2)[removed] = "<img src='btn_down_s.gif'>"; this.TitleTable.cells(3).appendChild(this.select); this.TitleWrapper = document.createElement("" + "<img SS_VAR.SelectList["+this.ssID+"].releaseTitle(window.event);' ); SS_CreatedElements[SS_CreatedElements.length] = this.TitleWrapper; this.TitleDiv.appendChild(this.TitleWrapper); } function SS_createOptionsDiv () { this.OptionsDiv = SS_createElement("" + "<div + " + " + ">" + " <table border=0 cellpadding=0 cellspacing=0 width=100% + " </table>" + "</div>" ); this.OptionsTable = this.OptionsDiv.childNodes(0); for (var i=0; i < this.options.length; i++) { this.createOptionTr(i); } this.syncOptions(); this.OptionsWrapper = document.createElement("" + "<img ); SS_CreatedElements[SS_CreatedElements.length] = this.OptionsWrapper; this.OptionsDiv.appendChild(this.OptionsWrapper); } function SS_createOptionTr (idx) { idx = ('undefined'!=typeof(idx)) ? idx : this.options.length - 1; var OptionTr = this.OptionsTable.insertRow(-1); var OptionTd = document.createElement("<td height="+this.OptionHeight+"></td>"); SS_CreatedElements[SS_CreatedElements.length] = this.OptionsTd; OptionTd.appendChild(document.createElement("<nobr OptionTr.appendChild(OptionTd); } [removed] &lt;/head&gt; &lt;body&gt;[removed]SS_write("<select name=star>\n" +" <option value=\"\" selected>不限</option>\n" +"<option value=\"水瓶座\">水瓶座</option>" +"<option value=\"双鱼座\">双鱼座</option>" +"<option value=\"白羊座\">白羊座</option>" +"<option value=\"金牛座\">金牛座</option>" +"<option value=\"双子座\">双子座</option>" +"<option value=\"巨蟹座\">巨蟹座</option>" +"<option value=\"狮子座\">狮子座</option>" +"<option value=\"处女座\">处女座</option>" +"<option value=\"天秤座\">天秤座</option>" +"<option value=\"天蝎座\">天蝎座</option>" +"<option value=\"射手座\">射手座</option>" +"<option value=\"摩羯座\">摩羯座</option>" +"</select>\n"); [removed] <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td>&nbsp;</td> <td>&nbsp;</td> <td>[removed]SS_write("<select name='province' >\n" +"<option value=\"\" selected>都行</option>\n" +"<option value=\"北京\">北京</option>" +"<option value=\"上海\">上海</option>" +"<option value=\"天津\">天津</option>" +"<option value=\"重庆\">重庆</option>" +"<option value=\"安徽\">安徽</option>" +"<option value=\"福建\">福建</option>" +"<option value=\"甘肃\">甘肃</option>" +"<option value=\"广东\">广东</option>" +"<option value=\"广西\">广西</option>" +"<option value=\"贵州\">贵州</option>" +"<option value=\"海南\">海南</option>" +"<option value=\"河北\">河北</option>" +"<option value=\"黑龙江\">黑龙江</option>" +"<option value=\"河南\">河南</option>" +"<option value=\"湖北\">湖北</option>" +"<option value=\"湖南\">湖南</option>" +"<option value=\"内蒙古\">内蒙古</option>" +"<option value=\"江苏\">江苏</option>" +"<option value=\"江西\">江西</option>" +"<option value=\"吉林\">吉林</option>" +"<option value=\"辽宁\">辽宁</option>" +"<option value=\"宁夏\">宁夏</option>" +"<option value=\"青海\">青海</option>" +"<option value=\"山西\">山西</option>" +"<option value=\"陕西\">陕西</option>" +"<option value=\"山东\">山东</option>" +"<option value=\"四川\">四川</option>" +"<option value=\"江西\">江西</option>" +"<option value=\"西藏\">西藏</option>" +"<option value=\"新疆\">新疆</option>" +"<option value=\"云南\">云南</option>" +"<option value=\"浙江\">浙江</option>" +"<option value=\"其它\">其它</option>" +"</select>\n",8); [removed]</td> </tr> </table> <br>

2012-10-24

prototype中文教程(精华)

Programming Guide 1.1. Prototype是什么? 1.2. 关联文章 1.3. 通用性方法 1.3.1. 使用 $()方法 1.3.2. 使用$F()方法 1.3.3. 使用$A()方法 1.3.4. 使用$H()方法 1.3.5. 使用$R()方法 1.3.6. 使用Try.these()方法 1.4. Ajax 对象 1.4.1. 使用 Ajax.Request类 1.4.2. 使用 Ajax.Updater 类 2. prototype.js参考 2.1. JavaScript 类的扩展 2.2. 对 Object 类的扩展 2.3. 对 Number 类的扩展 2.4. 对 Function 类的扩展 2.5. 对 String 类的扩展 2.6. 对 document DOM 对象的扩展 2.7. 对 Event 对象的扩展 2.8. 在 prototype.js中定义的新对象和类 2.9. PeriodicalExecuter 对象 2.10. Prototype 对象 2.11. Class 对象 2.12. Ajax 对象 2.13. Ajax.Base 类 2.14. Ajax.Request 类 2.15. options 参数对象 2.16. Ajax.Updater 类 2.17. Ajax.PeriodicalUpdater 类 2.18. Element 对象 2.19. Abstract 对象 2.20. Abstract.Insertion 类 2.21. Insertion 对象 2.22. Insertion.Before 类 2.23. Insertion.Top 类 2.24. Insertion.Bottom 类 2.25. Insertion.After 类 2.26. Field 对象 2.27. Form 对象 2.28. Form.Element 对象 2.29. Form.Element.Serializers 对象 2.30. Abstract.TimedObserver 类 2.31. Form.Element.Observer 类 2.32. Form.Observer 类 2.33. Abstract.EventObserver 类 2.34. Form.Element.EventObserver 类 2.35. Form.EventObserver 类 2.36. Position 对象 (预备文档)

2012-10-24

jQuery API中文

jQuery 1.3自从2008年1月14日发布后,后引来了各界的关注。我们也随即投入到翻译文档的工作中来。经过4天的努力,终于完工了。 由于赶上中国农历新年,本人未能及时制作成CHM版本,特意在开工的当天将其整理完成,由于时间赶的比较急,难免会有错误,如发现错误,请联系本人,我将会及时修正。 自从jQuery面世以来,它以其快速、简洁,能够很轻易地处理HTML文档、控制事件、给页面添加动画和Ajax效果等打动着所有关注它的人的心,本人也不例外,但长期以来,类似与本手册的(带查询功能),仅仅只有kuomart(这里不太清楚具体名称,仅仅从本人拥有的手册上找到这个名称,暂时先这样称呼,如有知道请告知!)制作的,但长期没有更新,给大家学习jQuery带来不便。为方便自己也为方便所有爱好jQuery的朋友,本人将CHM重新整理,并和jQuery中文API的整理者 Shawphy 同步更新本CHM手册,以便大家能及时了解其最新资讯!由于本人精力有限,难免出现差错,请谅解并告知 Email ! 本CHM手册旨在帮助广大jQuery爱好者快速了解jquery库和jquery开发人员提供一份速查手册。

2012-10-24

jQuery核心语法

jQuery核心语法 1、关于页面元素的引用 通过jquery的$()引用元素包括通过id、class、元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom定义的方法。 2、jQuery对象与dom对象的转换 只有jquery对象才能使用jquery定义的方法。注意dom对象和jquery对象是有区别的,调用方法时要注意操作的是dom对象还是jquery对象。 普通的dom对象一般可以通过$()转换成jquery对象。如:$(document.getElementById("msg"))则为jquery对象,可以使用jquery的方法。 由于jquery对象本身是一个集合,所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。如:$("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5]这些都是dom对象,可以使用dom中的方法,但不能再使用Jquery的方法。 以下几种写法都是正确的: $("#msg").html(); $("#msg")[0][removed]; $("#msg").eq(0)[0][removed]; $("#msg").get(0)[removed]; 3、如何获取jQuery集合的某一项 对于获取的元素集合,获取其中的某一项(通过索引指定)可以使用eq或get(n)方法或者索引号获取,要注意,eq返回的是jquery对象,而get(n)和索引返回的是dom元素对象。对于jquery对象只能使用jquery的方法,而dom对象只能使用dom的方法,如要获取第三个<div>元素的内容。有如下两种方法: $("div").eq(2).html(); //调用jquery对象的方法 $("div").get(2)[removed]; //调用dom的方法属性 4、同一函数实现set和get Jquery中的很多方法都是如此,主要包括如下几个: $("#msg").html(); //返回id为msg的元素节点的html内容。 $("#msg").html("<b>new content</b>"); //将“<b>new content</b>” 作为html串写入id为msg的元素节点内容中,页面显示粗体的new content $("#msg").text(); //返回id为msg的元素节点的文本内容。 $("#msg").text("<b>new content</b>"); //将“<b>new content</b>” 作为普通文本串写入id为msg的元素节点内容中,页面显示<b>new content</b> $("#msg").height(); //返回id为msg的元素的高度 $("#msg").height("300"); //将id为msg的元素的高度设为300 $("#msg").width(); //返回id为msg的元素的宽度 $("#msg").width("300"); //将id为msg的元素的宽度设为300 $("input").val("); //返回表单输入框的value值 $("input").val("test"); //将表单输入框的value值设为test $("#msg").click(); //触发id为msg的元素的单击事件 $("#msg").click(fn); //为id为msg的元素单击事件添加函数 同样blur,focus,select,submit事件都可以有着两种调用方法

2012-10-24

JavaScript实用范例辞典(js高手)

&lt;html&gt; &lt;head&gt; &lt;title&gt;取得下拉菜单中的选取值&lt;/title&gt; [removed] &lt;!-- function getValue(){ str = form1.select1.value; alert&#40;"你选取的是" + str&#41;; } //--&gt; [removed] &lt;/head&gt; &lt;body&gt; &lt;form name="form1"&gt; <select name="select1" <option value="第一项">第一项</option> <option value="第二项">第二项</option> <option value="第三项">第三项</option> </select> &lt;/form&gt; &lt;/body&gt; &lt;/html&gt;

2012-10-24

样色搭配大全(精华)

颜色绝不会单独存在。事实上,一个颜色的效果是由多种因素来决定的:反射  的光,周边搭配的色彩,或是观看者的欣赏角度。    有十种基本的配色设计,分别叫做:    无色设计(achromatic)、类比设计(analogous)、冲突设计(clash)、    互补设计(complement)、单色设计(monochromatic)、中性设计(neutral)、    分裂补色设计(splitcomplement)、原色设计(primary)、    二次色设计(secondary)以及三次色三色设计(tertiary)。

2012-10-24

CSS样式表中文版电子书

什么是样式表: CSS 是 Cascading Style Sheet 的缩写。译作「层叠样式表单」。是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。 如何将样式表加入您的网页: 你可以用以下三种方式将样式表加入您的网页。而最接近目标的样式定义优先权越高。高优先权样式将继承低优先权样式的未重叠定义但覆盖重叠的定义。例外请参阅 !important 声明。 链入外部样式表文件 (Linking to a Style Sheet) 你可以先建立外部样式表文件(.css),然后使用HTML的link对象。示例如下: &lt;head&gt; &lt;title&gt;文档标题&lt;/title&gt; &lt;link rel=stylesheet href="http://www.dhtmlet.com/dhtmlet.css" type="text/css"&gt; &lt;/head&gt; 而在XML中,你应该如下例所示在声明区中加入: &lt;? xml-stylesheet type="text/css" href="http://www.dhtmlet.com/dhtmlet.css" ?&gt; 定义内部样式块对象 (Embedding a Style Block) 你可以在你的HTML文档的&lt;HTML&gt;和&lt;BODY&gt;标记之间插入一个&lt;STYLE&gt;...&lt;/STYLE&gt;块对象。 定义方式请参阅样式表语法。示例如下: &lt;html&gt; &lt;head&gt; &lt;title&gt;文档标题&lt;/title&gt; &lt;style type="text/css"&gt; &lt;!-- body {font: 10pt "Arial"} h1 {font: 15pt/17pt "Arial"; font-weight: bold; color: maroon} h2 {font: 13pt/15pt "Arial"; font-weight: bold; color: blue} p {font: 10pt/12pt "Arial"; color: black} --&gt; &lt;/style&gt; &lt;/head&gt; &lt;body&gt; 请注意,这里将style对象的type属性设置为"text/css",是允许不支持这类型的浏览器忽略样式表单。 内联定义 (Inline Styles) 内联定义即是在对象的标记内使用对象的style属性定义适用其的样式表属性。示例如下: <p 0.5in; margin-right:0.5in">这一行被增加了左右的外补丁<p> 样式表语法 (CSS Syntax) Selector { property: value } 参数说明: Selector -- 选择符 property : value -- 样式表定义。属性和属性值之间用冒号(:)隔开。多个定义之间用分号(;)隔开 继承的值 (The ' Inherit ' Value) 每个属性都有一个指定的值: Inherit 。它的意思是:将父对象的值等同为计算机值得到。这个值通常仅仅是备用的。显式的声明它可用来强调。

2012-10-24

html语法教程

细说HTML标签 在HTML语法中,大致上可以分为: ( 节录自‘网站建置百宝箱’) 网页架构:主要网页主架构的介绍 分隔标签:也就是所谓的水平线 排版标签:针对标签的属性,可做适当的版面编排 字体标签:教导您设定文字的字体。 文字标签:教导您设定文字的颜色、行距、变化.....等等。 影像标签:教导您如何在网页中,植入图像。 背景标签:教导您如何设定背景颜色或是背景图像。 连结标签:教导您如何设定超连结,以及开视窗的条件。 表格标签:教导您如何在网页中运用表格。 序列标签:教导您如何设定文字序列或图形序列。 表单标签:教导您如何制作可填写用的表单。 框架标签:可让同一个视窗由多个网页一起组成。 其他技巧:让您的整个网页背景可以让您设定为图片或是声音。

2012-10-24

hibernate精华教程

使用hibernate编程步骤 1)配置环境,加载hibernate的jar文件,以及连接数据库连接使用的jar文件,并配置CLASSPATH环境变量。 2)写POJO类(普通的java类) 3)写hibernate所需的配置文件,hibernate.cfg.xml ,Xxxxx.hbm.xml 4)调用hibernate API。 a)使用Configuration对象的buildSessionFactory()方法创建SessionFactory对象。 b)使用SessionFactory对象openSession()方法创建Session对象。 c)使用Session的相应方法来操作数据库,将对象信息持久化到数据库。 3.Hibernate的5个核心类或接口: (1)Configuration:用于解析hibernate.cfg.xml文件和XXXXX.hbm.xml文件,并创建SessionFactory对象。Configuration对象用于配置并且启动Hibernate。Hibernate应用通过Configuration实例来指定对象--关系映射文件的位置或者动态配置Hibernate的属性,然后创建SessionFactory实例。 (2)SessionFactory:初始化Hibernate,充当数据存储源的代理,创建Session对象。一个SessinFactory实例对应一个数据存储源,应用从SessionFactory中获得Session实例。如果应用同时访问多个DB,怎需要为每个数据库创建一个单独的SessionFactory实例。 (3)Session:也被称为持久化管理器,对象级数据库操作。 特点: 1)不是线程安全的,因此在设计软件架构时,应该避免多个线程共享同一个Session实例。 2)Session实例是轻量级的,所谓轻量级,是指它的创建和销毁不需要消耗太多的资源。这意味着在程序中可以经常创建或销毁Session对象,例如为每个客户请求分配单独的Session实例,或者为每个工作单位分配单独的Session实例。 3)通常将每一个Session实例和一个DB事务邦定,也就是说,每执行一个DB事务,都应该先创建一个新的Session实例,不论事务执行成功与否,最后都应该调用Session的close()方法,从而释放Session实例占用的资源。 注:每个Session实例都有自己的缓存,这个Session实例的缓存只能被当前的工作单元访问。 (4)Query:执行数据库查询操作。要使用HQL(HibernateQueryLanguage)查询语句,HQL查询语句是面向对象的,它引用类名及类的属性名。 select/update/delete…… from …… where …… group by …… having …… order by …… asc/desc Transaction:用于管理操作事务。它对底层的事务接口做了封装,底层事务接口包括:JDBC API、JTA(JavaTransactionAPI)、CORBA(CommonObjectRequestBroker Architecture)API。

2012-10-24

flex结合spring,hibernate配置手册(精华)

安装: 一: 安装mysql,jdk,tomcat,eclipse,myeclipse并正确配置环境变量。 二:安装flex3 1. 首先下载安装Eclipse 3.3 解压到 D:\Program Files\eclipse 到算安装成功了. 2. 下载安装Flex Builder 3.0 http://trials.adobe.com/Applications/Flex/FlexBuilder/3/FB3_WWEJ_Plugin.exe 1. 指定 Flex Builder 3.0 安装路径为D:\Program Files\eclipse\Flex Builder,进下一步. (你也可设为其它目录,但不要这样:D:\Program Files\eclipse) 2. 指定 Eclipse 安装路径为 D:\Program Files\eclipse 进下一步. 3. 选择是否安装浏览器 Flash Plyer 9 插件(可选安装) 安装要花一点时间.大家慢慢等待...出现一些提示你不用管它. 等安装完后运行 Eclipse.exe 你是看不到 Flex的..往下看我会帮你解决这个问题^_^ 3. 绿化Flex Builder 这是重点. 1. 把D:\Program Files\eclipse\Flex Builder\com.adobe.flexbuilder.update.site\下的 plugins、features、site.xml 复制到 D:\Program Files\eclipse\ (如果你的eclipse目录已经有一个site.xml 你只要把两个文件的feature节内容合并就好了.) 2. 把D:\Program Files\eclipse\Flex Builder\eclipse\下的 plugins、features(如果有的话,这是Eclipse的一些更新) 复制到 D:\Program Files\eclipse\ 3. 把D:\Program Files\eclipse\Flex Builder\sdks 复制到D:\Program Files\eclipse\ OK,Flex Builder安装完成,接下来就是启动Elipse 我们现在已经可以找到Flex了.但还没完,请往下看. 4. 进行Flex的配置. 在Eclipse中.点击->Window->Preferences->Flex->Installed Flex SDKs 修改Flex SDKs 2.0 和 Flex SDKs 3.0的路径点Apply让设置成效. 重启Eclipse..你就可以开发Flex了. 5. 现在你的Flex已经开始工作了.但之前安装的Flex Builder怎么办呢.哈哈. 运行这个D:\Program Files\eclipse\Flex Builder\Uninstall Adobe Flex Builder 3 Plug-in\Uninstall Adobe Flex Builder 3 Plug-in.exe就可以了. 三:bleazeds 解压到任何一个地方就可以,主要用到里面的flex文件夹和lib文件夹

2012-10-24

Extjs自动填充

Ext.onReady(function() { new Ext.form.FormPanel({ height : 90, width:500, labelWidth : 200, labelPad : 0, renderTo :'auto', frame : true, items : [ { xtype : 'combo', triggerAction : 'query', forceSelection : true, editable : true, queryParam : 'autoContent',//向后台传递输入框中的值 minChars : 2, fieldLabel : '填写自动提示内容', emptyText : '--请填写--', selectOnFocus : true, id : 'autos', name : 'autos', valueField : 'name', displayField : 'value', anchor : '95%', hideTrigger : true, //隐藏下拉箭头 typeAhead : false, queryDelay : 700, mode : 'remote', store : new Ext.data.JsonStore({ url : contextPath + '/AutoComplete', root : 'root', baseParams : { limit : 20 }, fields : [ { name : 'value', mapping : 'value' },{ name:'name', mapping:'name' } ] }), listeners : { //为了解决 编辑后无法保存 render : function(f) { f.el.on('keyup', function(e) { f.setValue(f.getRawValue()); }); } } }] }); });

2012-10-24

dorado实例

 ViewModel:视图模型。一种用于封装界面逻辑和操作逻辑的对象。即视图中包含哪些数据、这些数据以什么方式展现、视图中包含哪些控件、这些控件会激发什么操作等等。 ViewModel一般不用于定义各种控件最终在显示的布局,控件布局应通过其它方式进行定义,例如JSP或者Html。  Dataset: 数据集。 数据集是Dorado5架构的核心,用来管理一组数据。结构类似于关系型数据库中的表或视图。 Dataset在运行时会有Server端和Client端两种实例。 Dataset不可以直接显示,一般须通过数据控件来展示其中的数据。  Control: 各种可视化的控件。 包含数据控件和非数据控件。 其中非数据控件一般与数据操作没有直接关系(例如:按钮,菜单等)。 而数据控件是指可以直接用于显示或编辑数据的控件(例如:数据表格,编辑框,树状列表等)。 数据控件可以直接与Dataset进行绑定并自动对Dataset中的数据进行展现。  BRich客户端: 即Browser Rich Client。是指运行与纯浏览器环境中的具有富客户端表现能力的客户端。

2012-10-24

js炫丽弹出框(artDialog)

artDialog是一个轻巧且高度兼容的javascript对话框组件,可让你的网页交互拥有桌面软件般的 用户体验。 项目主页: http://code.google.com/p/artdialog/ 基于LGPL协议发行 [调用形式] ------------------------------------------------------------------------------------------------ artDialog( { 配置参数 }, function(){ 确定按钮回调函数 }, function(){ 取消按钮回调函数 }, function(){ 对话框关闭后的回调函数 } ) (回调函数可以不指定,但执行回调函数完成后默认关闭对话框,你可以让回调函数返回false 阻止其关闭) [配置参数] ------------------------------------------------------------------------------------------------ content: {消息内容,支持HTML} title: {标题.默认:'提示'} lock: {是否锁定屏幕. 默认:false} width: {宽度,支持em等单位. 默认:'auto'} height: {高度,支持em等单位. 默认:'auto'} url: {iframe地址,存在content参数时候,此参数无效} left: {x坐标,可以使用关键字,如:left/right/center. 默认:'center'} top: {y坐标,可以使用关键字,如:top/bottom/center. 默认:'center'(并非绝对垂直居中, 而是使用的是黄金比例)} fixed: {是否启用静止定位. 默认:false} time: {多少秒自动关闭} style: {对话框风格扩展参数,写入自定义className,详情见皮肤css文件的定义,多个用空格 隔开} yesText: {确定按钮文本. 默认:'确定'} noText: {取消按钮文本. 默认:'取消'} id: {给对话框定义id,对话框未关闭就不再会有同名对话框弹出. 例如定义id为'my2',则 内容容器id为'my2Content'} parent: {是否在父页面弹出, 适应框架页面. 默认:false} (调用演示可参考: index.html) [更新列表] ------------------------------------------------------------------------------------------------ v2.0.5 1、解决页面载入即弹出的情况造成水平对齐不正常的BUG(主要是dom ready事件 绑定) 2、增加parent参数,支持对话框穿越框架在父页面弹出 v2.0.5 1、剔除yesClose参数,如果要点击确定或者取消按钮不自动关闭对话框,让回调 函数返回false即可 2、更改x参数名为left,y为top,为后续版本拓展right与bottom参数需要 3、修改皮肤aero和chrome的图标布局,让回行消息文本留出图标的宽度 v2.0.4 1、修改一小处兼容框架样式,防止调用页面body设置了文本对齐导致对话框标题文 本也居中 v2.0.3 1、增加id参数,可以方便外部脚本控制整个对话框,同时可防止对话框重复弹出 2、增加yesClose参数,用于阻止对话框点击确定后自动关闭 v2.0.0 ... [文件说明] ------------------------------------------------------------------------------------------------ artDialog.js 是注释版,方便修改 artDialog.min.js 是采用LZ77算法极限压缩的版本,只有8kb,可用于实际项目 skin 目录是风格目录 iepngfix 目录是解决IE6png BUG的外部脚本,由artDialog.js管理 index.html 是演示文件(可删除) _doc 目录是技术相关说明文档(可删除) _domo 目录是演示相关文件(可删除)

2012-10-24

QQtab动画切换效果

package com.android521.activity; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.view.animation.TranslateAnimation; import android.widget.ImageView; import android.widget.RelativeLayout; public class MainActivity extends Activity { private RelativeLayout layout; private RelativeLayout layout1; private RelativeLayout layout2; private RelativeLayout layout3; private ImageView tab1; private ImageView tab2; private ImageView tab3; private ImageView first; private int current = 1; // 默认选中第一个,可以动态的改变此参数值 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initUI(); } private void initUI(){ layout = (RelativeLayout) findViewById(R.id.root); layout1 = (RelativeLayout) findViewById(R.id.layout1); layout2 = (RelativeLayout) findViewById(R.id.layout2); layout3 = (RelativeLayout) findViewById(R.id.layout3); tab1 = (ImageView) findViewById(R.id.tab1); tab1.setOnClickListener(onClickListener); tab2 = (ImageView) findViewById(R.id.tab2); tab2.setOnClickListener(onClickListener); tab3 = (ImageView) findViewById(R.id.tab3); tab3.setOnClickListener(onClickListener); RelativeLayout.LayoutParams rl = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); rl.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE); first = new ImageView(this); first.setTag("first"); first.setImageResource(R.drawable.topbar_select); // 默认选中项 switch (current) { case 1: layout1.addView(first, rl); current = R.id.tab1; break; case 2: layout2.addView(first, rl); current = R.id.tab2; break; case 3: layout3.addView(first, rl); current = R.id.tab3; break; default: break; } } private boolean isAdd = false; // 是否添加过 top_select private int select_width; // top_select_width private int select_height; // top_select_height private int firstLeft; // 第一次添加后的左边距***** private int startLeft; // 起始左边距 // 添加一个view,移除一个view private void replace() { switch (current) { case R.id.tab1: changeTop(layout1); break; case R.id.tab2: changeTop(layout2); break; case R.id.tab3: changeTop(layout3); break; default: break; } } private void changeTop(RelativeLayout relativeLayout){ ImageView old = (ImageView) relativeLayout.findViewWithTag("first");; select_width = old.getWidth(); select_height = old.getHeight(); RelativeLayout.LayoutParams rl = new RelativeLayout.LayoutParams(select_width, select_height); rl.leftMargin = old.getLeft() + ((RelativeLayout)old.getParent()).getLeft(); rl.topMargin = old.getTop() + ((RelativeLayout)old.getParent()).getTop(); // 获取起始位置 firstLeft = old.getLeft() + ((RelativeLayout)old.getParent()).getLeft(); ImageView iv = new ImageView(this); iv.setTag("move"); iv.setImageResource(R.drawable.topbar_select); layout.addView(iv , rl); relativeLayout.removeView(old); } private OnClickListener onClickListener = new OnClickListener(){ public void onClick(View v) { if(!isAdd){ replace(); // 初次使用移除old 添加新的top_select为RelativeLayout所使用 isAdd = true; } ImageView top_select = (ImageView) layout.findViewWithTag("move"); int tabLeft; int endLeft = 0; boolean run = false; switch (v.getId()) { case R.id.tab1: if (current != R.id.tab1) { // 中心位置 tabLeft = ((RelativeLayout) tab1.getParent()).getLeft() + tab1.getLeft() + tab1.getWidth() / 2; // 最终位置 endLeft = tabLeft - select_width / 2; current = R.id.tab1; run = true; } break; case R.id.tab2: if (current != R.id.tab2) { tabLeft = ((RelativeLayout) tab2.getParent()).getLeft() + tab2.getLeft() + tab2.getWidth() / 2; endLeft = tabLeft - select_width / 2; current = R.id.tab2; run = true; } break; case R.id.tab3: if (current != R.id.tab3) { tabLeft = ((RelativeLayout) tab3.getParent()).getLeft() + tab3.getLeft() + tab3.getWidth() / 2; endLeft = tabLeft - select_width/2; current = R.id.tab3; run = true; } break; default: break; } if(run){ TranslateAnimation animation = new TranslateAnimation(startLeft, endLeft - firstLeft, 0, 0); startLeft = endLeft - firstLeft; // 重新设定起始位置 animation.setDuration(400); animation.setFillAfter(true); top_select.bringToFront(); top_select.startAnimation(animation); } } }; }

2012-10-24

android反编译(dex2jar.zip)

1.使用命令行时,当转某个类失败时将继续,而不退出程序 2.解决读取class annotation 的一个问题 Fixes issue 42 3.rename package pxb.android.dex2jar to com.googlecode.dex2jar 4.issue 33, issue 43在启动参数中设置默认jvm内存大小 5. 修复读取dex中java/lang/Object类时其父类是null导致的一个NPE问题 6. 提高异常信息的可读性 Fixes issue 44 反编译步骤 1、把 class.dex 拷贝到 dex2jar.bat 所在目录,直接拖动 class.dex 到 dex2jar.bat,生成 classes.dex.dex2jar.jar。 2、用 rar 解压出 jar 文件中的 class 文件,然后 用jad 或 DJ Java Decompiler 反编译工具将 .class 文件反编译成 .java 文件 3、运行 JD-GUI工具(绿色软件),打开上面的 jar 文件,在File下有个 Save JAR Source,它可以生成 src 源代码。 Android用的Dalvik压根不是标准的Java VM的Jar,而是DEX格式的,怎么办?附件是dxe2jar和JD,两个工具都是open source的,我已经全部放在一个压缩包了。 别着急,有办法: 1. 假设你要反汇编的是app.apk,那么先改名成app.zip 2. 解压 3. 在解压出来的里面找到classes.dex,这个就是目标的程序的二进制文件 4. 用附件的dex2jar,在Windows命令行下运行 dex2jar classes.dex 5. 生成classes.dex.dex2jar.jar,这个就是转换后的JAR文件了 6. 执行jd-gui,找到刚才生成的JAR文件,打开之。 7. 偷偷乐吧,90%以上的Java源代码跃然眼前.

2012-10-24

android酷狗音乐源码

高仿酷狗音乐UI源码 package com.hrw.android.player.activity; import java.util.List; import android.app.TabActivity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnTouchListener; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.TabHost; import com.hrw.android.player.BelmotPlayer; import com.hrw.android.player.R; import com.hrw.android.player.broadcastreceiver.UpdateUiBroadcastReceiver; import com.hrw.android.player.component.dialog.ExitDialog; import com.hrw.android.player.component.menu.CommonPopupWindowMenu; import com.hrw.android.player.dao.AudioDao; import com.hrw.android.player.dao.impl.AudioDaoImpl; import com.hrw.android.player.utils.Constants; public class HomeActivity extends TabActivity { private static final String TAG = "HomeActivity"; private BelmotPlayer belmotPlayer; ImageButton tab_main; ImageButton tab_random; ImageButton tab_search; ImageButton tab_menu; View tabButtonSelectd; LinearLayout pop_menu_layout; CommonPopupWindowMenu popWindow; private AudioDao audioDao; /** * Launch Home activity helper * * @param c * context where launch home from (used by SplashscreenActivity) */ public static void launch(Context c) { Intent intent = new Intent(c, HomeActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); c.startActivity(intent); } @Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.main_activity); super.onCreate(savedInstanceState); initTopButton(); initTabHost(); initBottomMenu(); registerReceiver(); if (null == belmotPlayer) { belmotPlayer = BelmotPlayer.getInstance(); } if (null == audioDao) { audioDao = new AudioDaoImpl(this); } } private void registerReceiver() { IntentFilter localIntentFilter = new IntentFilter(); localIntentFilter.addAction(Constants.UPDATE_UI_ACTION); BroadcastReceiver updateUiBroadcastReceiver = new UpdateUiBroadcastReceiver( this); registerReceiver(updateUiBroadcastReceiver, localIntentFilter); } private void initTabHost() { Intent intent = new Intent(this, MenuListActivity.class); TabHost tabHost = getTabHost(); TabHost.TabSpec tabSpec = tabHost.newTabSpec( Constants.TAB_SPEC_TAG.MAIN_SPEC_TAG.getId()).setIndicator( Constants.TAB_SPEC_TAG.MAIN_SPEC_TAG.getId()); tabSpec.setContent(intent); tabHost.addTab(tabSpec);// when tabhost add a tab,it seems that current // TabActivity lose focus and the tabSpec get // focus.and current TabActivity can't invoke // onCreateOptionsMenu and onMenuOpened. tabHost.setCurrentTab(0); } private void initTopButton() { final Intent toPlayerActivity = new Intent(this, PlayerActivity.class); ImageButton player_button = (ImageButton) findViewById(R.id.player); player_button.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_UP) { startActivityForResult(toPlayerActivity, Constants.MENU_TO_PLAYER_REQUEST_CODE); } return false; } }); } private void switchActivity(Intent intent, String tag, String label) { TabHost.TabSpec tab_spec_music_list = this.getTabHost().newTabSpec(tag) .setIndicator(label); tab_spec_music_list.setContent(intent); this.getTabHost().addTab(tab_spec_music_list); this.getTabHost().setCurrentTabByTag(tag); } OnClickListener bottomMenuOnClickListener = new OnClickListener() { @Override public void onClick(View v) { boolean selected = v.isSelected(); if (!selected) { tabButtonSelectd.setSelected(false); v.setSelected(true); tabButtonSelectd = v; switch (v.getId()) { case R.id.tab_main: { Intent toMainActivity = getIntent(); switchActivity(toMainActivity, Constants.TAB_SPEC_TAG.MAIN_SPEC_TAG.getId(), Constants.TAB_SPEC_TAG.MAIN_SPEC_TAG.getId()); break; } case R.id.tab_random: { if (belmotPlayer.getPlayerEngine().isPlaying()) { belmotPlayer.getPlayerEngine().stop(); } List<String> musicList = audioDao.getLocalAudioPathList(); belmotPlayer.getPlayerEngine().setMediaPathList(musicList); belmotPlayer.getPlayerEngine().setPlayingPath( musicList.get(0)); belmotPlayer.getPlayerEngine().play(); break; } case R.id.tab_search: { Intent toSearchMusicActivity = new Intent( getApplicationContext(), SearchMusicActivity.class); switchActivity(toSearchMusicActivity, "toSearchMusicActivity", "toSearchMusicActivity"); break; } } } // else { // TODO: do something... // v.setSelected(true); // } // v.setSelected(true); // v.setBackgroundResource(R.drawable.tab_net_media_pressed); } }; private void initBottomMenu() { // TODO It is the first button on the bottom. tab_main = (ImageButton) findViewById(R.id.tab_main); tab_random = (ImageButton) findViewById(R.id.tab_random); tab_search = (ImageButton) findViewById(R.id.tab_search); tab_menu = (ImageButton) findViewById(R.id.tab_menu); tab_main.setSelected(true); tabButtonSelectd = tab_main; // tab_random.setPressed(true); tab_main.setOnClickListener(bottomMenuOnClickListener); tab_random.setOnClickListener(bottomMenuOnClickListener); tab_search.setOnClickListener(bottomMenuOnClickListener); } @Override protected void onStart() { super.onStart(); // localTabHost1.setCurrentTab(0); } @Override protected void onRestoreInstanceState(Bundle state) { // TODO Auto-generated method stub super.onRestoreInstanceState(state); } @Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { if (event.getAction() == KeyEvent.ACTION_DOWN && event.getRepeatCount() == 0) { ExitDialog.getExitDialog(this).create().show(); return true; } } // else if (event.getKeyCode() == KeyEvent.KEYCODE_MENU) { // if (!popWindow.isShowing()) { // popWindow.showAtLocation(findViewById(R.id.bottom_bar), // Gravity.BOTTOM, 0, 55); // } else { // popWindow.dismiss(); // } // return true; // } return super.dispatchKeyEvent(event); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == Constants.MENU_TO_PLAYER_REQUEST_CODE) { // Bundle bundle = data.getExtras(); switch (resultCode) { case Constants.MENU_TO_PLAYER_RESULT_CODE: // File file = (File) bundle.get("filePath"); // if (null != file) { // /music_list.add(file.getName()); // } break; } } } }

2012-10-24

android邮箱自动填充

package com.android.system.AutoComplete; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AutoCompleteTextView; import android.widget.BaseAdapter; import android.widget.Filter; import android.widget.Filterable; import android.widget.TextView; public class AutoComplete extends Activity { AutoCompleteTextView autoview; // default city String[] stringArray = { "@163.com", "@126.com", "@qq.com", "@sina.com", "@taobao.com" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); autoview = (AutoCompleteTextView) findViewById(R.id.edit); // adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, stringArray); final MyAdatper adapter = new MyAdatper(this); autoview.setAdapter(adapter); autoview.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable s) { String input = s.toString(); adapter.mList.clear(); if (input.length() > 0) { for (int i = 0; i < stringArray.length; ++i) { adapter.mList.add(input + stringArray[i]); } } adapter.notifyDataSetChanged(); autoview.showDropDown(); } }); // default=2 autoview.setThreshold(1); } class MyAdatper extends BaseAdapter implements Filterable { List<String> mList; private Context mContext; private MyFilter mFilter; public MyAdatper(Context context) { mContext = context; mList = new ArrayList<String>(); } @Override public int getCount() { return mList == null ? 0 : mList.size(); } @Override public Object getItem(int position) { return mList == null ? null : mList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { TextView tv = new TextView(mContext); tv.setTextColor(Color.BLACK); tv.setTextSize(20); convertView = tv; } TextView txt = (TextView) convertView; txt.setText(mList.get(position)); return txt; } @Override public Filter getFilter() { if (mFilter == null) { mFilter = new MyFilter(); } return mFilter; } private class MyFilter extends Filter { @Override protected FilterResults performFiltering(CharSequence constraint) { FilterResults results = new FilterResults(); if (mList == null) { mList = new ArrayList<String>(); } results.values = mList; results.count = mList.size(); return results; } @Override protected void publishResults(CharSequence constraint, FilterResults results) { if (results.count > 0) { notifyDataSetChanged(); } else { notifyDataSetInvalidated(); } } } } }

2012-10-23

ajax中文教程

var xmlHttp = false; try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP") } catch (e2) { xmlHttp = false; } }

2012-10-23

amcharts中文教程(柱状图,饼状图等的中文设置说明)

xml &lt;!-- [xml] (xml / csv) 数据类型xml/csv--&gt; ; &lt;!-- 如果使用csv作为数据的话,需要使用这个属性;表示文件数据分隔符,(平常以";"和","为主) [;] (string) csv file data separator (you need it only if you are using csv file for your data) --&gt; 1 &lt;!-- 如果使用的是csv数据,可以设置跳过几行再显示数据,默认为0表示csv中的数据全部显示,大于n(n>0);表示前面n行都不显示[0] (Number) if you are using csv data type, you can set the number of rows which should be skipped here --&gt; &lt;!-- 设置系统中的字体[Arial] (font name) use device fonts, such as Arial, Times New Roman, Tahoma, Verdana... --&gt; &lt;!-- 设置所有文本的大小,默认为11,具体的文本的字体大小也可以在下面的设置中设置[11] (Number) text size of all texts. Every text size can be set individually in the settings below --&gt; &lt;!-- 同上[#000000] (hex color code) main text color. Every text color can be set individually in the settings below--&gt; . &lt;!-- 小数分隔符,默认为[,]注:该属性只是用来显示,而在csv数据文件中,必须使用[.] (string) decimal separator. Note, that this is for displaying data only. Decimals in data xml file must be separated with a dot --&gt; &lt;!-- 千位分隔符,默认为空[ ] (string) thousand separator. use "none" if you don't want to separate --&gt; 3 &lt;!-- 如果百分数格式的数字,后面的小数位小于该属性的值,则在小数后面加0补充。如54.2%,该属性设置为3,那么显示的效果为54.200%。[] (Number) if your value has less digits after decimal then is set here, zeroes will be added --&gt; &lt;!--设置科学记数法的最小值 [0.000001] If absolute value of your number is equal or less then scientific_min, this number will be form

2012-10-23

网站后台管理模板,管理员对数据的管理

这是一个很好的网站后台管理模板,管理员登陆,对数据进行管理,对数据库进行增删改查等功能

2010-03-07

java swing 做的QQ聊天程序

用 Java swing做的QQ聊天程序,可以在局域网内聊天, 客户端和服务器简单易懂,功能齐全,可以注册,可以登陆,希望支持

2010-01-02

好玩的阿斯顿福建阿里斯蒂芬

好玩的,。厂家骄傲ifkljsafoi就爱看了伐是否看见啦是大方了快

2009-11-13

添加超级网络邻居,速度超快

添加超级网络邻居,速度超快,很多人用的,特别是同一个楼的,还可以和美眉聊天呢!

2009-10-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除