⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 maincanvas.java

📁 一个手机小说查看系统,可以进行小说的下载、查阅等操作。
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
					toState(S_BOOKDIR);
				else if(bookid != null)
				{
					connrequest("http://www.oomiz.com/oobook.php?action=bookdir&bookid="+cttbookid);
					toState(S_BOOKDIR_BEFORE);
					statetoload = S_BOOKDIR;
				}
			}
			else if(k ==KEY_NUM3)
			{
				connrequest("http://www.oomiz.com/oobook.php?action=bookread&contentid="+contentid);
				toState(S_BOOKREAD_BEFORE);
				statetoload = S_BOOKREAD;
			}
			else if(ga == UP)
			{
				rowsoffread--;
				if(rowsoffread < 0)
					rowsoffread = 0;
			}
			else if(ga == DOWN)
			{
				rowsoffread++;
				if(rowsoffread > rowsall -1)
					rowsoffread = rowsall -1;
			}
			else if(k == KEY_STAR)
			{
				rowsoffread -= rowsperpage;
				if(rowsoffread < 0)
					rowsoffread = 0;
			}
			else if(k == KEY_POUND)
			{
				rowsoffread += rowsperpage;
				if(rowsoffread > rowsall -1)
					rowsoffread = rowsall -1;
			}
			else if(ga == LEFT && contentidprev!=null)
			{
				rowsoffread = 0;
				connrequest("http://www.oomiz.com/oobook.php?action=bookread&contentid="+contentidprev);
				toState(S_BOOKREAD_BEFORE);
				statetoload = S_BOOKREAD;
			}
			else if(ga == RIGHT && contentidnext!=null)
			{
				rowsoffread = 0;
				connrequest("http://www.oomiz.com/oobook.php?action=bookread&contentid="+contentidnext);
				toState(S_BOOKREAD_BEFORE);
				statetoload = S_BOOKREAD;
			}
		}
		repaint();
	}
	public void keyReleased(int k)
	{
		
	}
	public void keyRepeated(int k)
	{
		if(state==S_BOOKINFO || state==S_BOOKREAD)
			keyPressed(k);
	}
	public void parseIndex(String str)
	{
		int index = str.indexOf("result\n");
		if(index == -1)
			return;
		str = str.substring(index+7);
		index = str.indexOf("\n");
		if(index == -1)
			return;
		String temstr = str.substring(0,index);
		if(temstr!=null)
			indexall = Integer.parseInt(temstr);
		System.out.println(indexall);
		str = str.substring(index+1);
		vIndex = new Vector();
		while(str.length()>0)
		{
			if(str == null)
				break;
			int k = str.indexOf("||");
			int l = str.indexOf("##");
			if(k>-1 && l>-1)
			{
				//System.out.println(str.length()+" "+k+" "+l);
				String[] tem = new String[2];
				tem[0] = str.substring(0,k);
				tem[1] = str.substring(k+2,l);
				//System.out.println(tem[0]+" "+tem[1]);
				vIndex.addElement(tem);
				str = str.substring(l+2);
			}
			else break;
		}
		rowsoffindex = 0;
		bLoadedIndex = true;
		System.out.println("parseIndex ok");
	}
	public void parseBookInfo(String str)
	{
		int index = str.indexOf("result\n");
		if(index == -1)
			return;
		str = str.substring(index+7);
		try
		{
			strdataInfo = new String[7];
			strdataInfo[0] = str.substring(0,str.indexOf("||"));//bookname
			str = str.substring(str.indexOf("||")+2);
			strdataInfo[1] = str.substring(0,str.indexOf("||"));//id
			str = str.substring(str.indexOf("||")+2);
			strdataInfo[2] = str.substring(0,str.indexOf("||"));//classname
			str = str.substring(str.indexOf("||")+2);
			strdataInfo[3] = str.substring(0,str.indexOf("||"));//athorname
			str = str.substring(str.indexOf("||")+2);
			strdataInfo[4] = str.substring(0,str.indexOf("||"));//preview
			str = str.substring(str.indexOf("||")+2);
			strdataInfo[5] = str.substring(0,str.indexOf("||"));//contentlastupdateid
			str = str.substring(str.indexOf("||")+2);
			strdataInfo[6] = str;//contentlastupdatetitlename
			
			if(strdataInfo[4] != null)
			{
				int k = 0;
				while((k=strdataInfo[4].indexOf("<br />")) > -1)
					strdataInfo[4] = strdataInfo[4].substring(0,k) + strdataInfo[4].substring(k+6);
			}
			rowsoffinfo = 0;
			bLoadedInfo = true;
		}catch(Exception e){}
		strdataInfoAll = strdataInfo[0] + "\n类别:" + strdataInfo[2] + "\n作者:" + strdataInfo[3] + "\n新章:" + strdataInfo[6] + "\n简介:\n" + strdataInfo[4];
	}
	public void parseBookDir(String str)
	{
		int index = str.indexOf("result\n");
		if(index == -1)
			return;
		str = str.substring(index+7);
		if(vDir==null)vDir = new Vector();
			else vDir.removeAllElements();
		if(vDirD==null)vDirD = new Vector();
			else vDirD.removeAllElements();
		if(vDirC==null)vDirC = new Vector();
			else vDirC.removeAllElements();
		while(str.length()>0)
		{
			if(str == null)
				break;
			int l = str.indexOf("##");
			if(l > -1)
			{
				try
				{
					String[] tem = new String[7];
					tem[0] = str.substring(0,str.indexOf("||"));//type
					str = str.substring(str.indexOf("||")+2);
					tem[1] = str.substring(0,str.indexOf("||"));//titlename
					str = str.substring(str.indexOf("||")+2);
					tem[2] = str.substring(0,str.indexOf("||"));//id
					str = str.substring(str.indexOf("||")+2);
					tem[3] = str.substring(0,str.indexOf("||"));//contentid
					str = str.substring(str.indexOf("||")+2);
					tem[4] = str.substring(0,str.indexOf("||"));//parentid
					str = str.substring(str.indexOf("||")+2);
					tem[5] = str.substring(0,str.indexOf("##"));//class
					str = str.substring(str.indexOf("##")+2);
					tem[6] = "0";//folder
					
					//System.out.println(tem[0]+" "+tem[1]+" "+tem[2]+" "+tem[3]+" "+tem[4]);
					vDir.addElement(tem);
					//if(tem[0] == "dd")
					//	vDirD.addElement(tem);
					//else if(tem[0] == "cc")
					//	vDirC.addElement(tem);
					bLoadedDir = true;
				}catch(Exception e){System.out.println(e.getMessage());}
			}
			else break;
		}
		System.out.println(vDir.size());
		System.out.println("parseBookDir ok");
	}
	public void parseBookRead(String str)
	{
		int index = str.indexOf("result\n");
		if(index == -1)
			return;
		str = str.substring(index+7);
		try
		{
			strdataRead = new String[7];
			strdataRead[0] = str.substring(0,str.indexOf("||"));//titlename
			str = str.substring(str.indexOf("||")+2);
			strdataRead[1] = str.substring(0,str.indexOf("||"));//id
			str = str.substring(str.indexOf("||")+2);
			strdataRead[2] = str.substring(0,str.indexOf("||"));//prev->id
			str = str.substring(str.indexOf("||")+2);
			strdataRead[3] = str.substring(0,str.indexOf("||"));//next->id
			str = str.substring(str.indexOf("||")+2);
			strdataRead[4] = str.substring(0,str.indexOf("||"));//bookid
			str = str.substring(str.indexOf("||")+2);
			strdataRead[5] = str;//content
			
			if(strdataRead[5] != null)
			{
				int k = 0;
				while((k=strdataRead[5].indexOf("<br />")) > -1)
					strdataRead[5] = strdataRead[5].substring(0,k) + strdataRead[5].substring(k+6);
			}
			cttbookid = strdataRead[4];
			contentid = strdataRead[1];
			contentidprev = strdataRead[2];
			contentidnext = strdataRead[3];
			bSaved = true;
			bLoadedRead = true;
		}catch(Exception e){}
		strdataReadAll = "阅读章节 : " + strdataRead[0] + "\n\n" + strdataRead[5];
		System.out.println("parseBookRead ok");
	}
	public void paintScrollbar(Graphics g,int x,int y,int w,int h,int sw,int sh,int rowsoff,int rowsperpage,int rowsall,int colorborder,int colorbar,int type)
	{
		if(rowsall==0)
			return;
		if(type==0)
		{
			g.setClip(x,y,w+1,h+1);
			g.setColor(colorborder);
			//g.drawRect(x,y,w,h);
			g.setColor(C_STYLE[styleid][C_BMOON]);
			g.drawLine(x,y,x,y+h);//|
			g.setColor(C_STYLE[styleid][C_BSUN]);
			g.drawLine(x+w,y,x+w,y+h);//|
			g.setColor(C_STYLE[styleid][C_BSUN]);
			g.drawLine(x,y+h,x+w,y+h);//-
			g.setColor(C_STYLE[styleid][C_BMOON]);
			g.drawLine(x,y,x+w,y);//_
			if(rowsperpage<rowsall)
			{
				g.setClip(x,y,w,h);
				g.setColor(colorbar);
				g.fillRect(x+1,y+h*rowsoff/rowsall,w-2,h*rowsperpage/rowsall);
			}
			else
			{
				g.setClip(x+1,y+1,w-2,h-2);
				g.setColor(colorbar);
				g.fillRect(x+1,y+1,w-2,h-2);
			}
		}
		else if(type==1)
		{
			
		}
		g.setClip(0,0,sw,sh);
	}
	public void paintGuage(Graphics g)
	{
		//g.setColor(0x0000ff);
		//g.drawRect(0,sh-fonth+1,sw-1,fonth-2);
		
		g.setClip(BORDERL,sh-HBAR,sw-BORDERL-BORDERR+1,HBAR-BORDERB+1);
		g.setColor(0x000000);
		//g.setColor(0xffffff);
		g.drawLine(BORDERL,sh-HBAR,sw-BORDERR,sh-HBAR);//-
		g.drawLine(BORDERL,sh-HBAR,BORDERL,sh-BORDERB);//|
		g.setColor(0xffffff);
		//g.setColor(0x000000);
		g.drawLine(BORDERL,sh-BORDERB,sw-BORDERR,sh-BORDERB);//-
		g.drawLine(sw-BORDERR,sh-HBAR,sw-BORDERR,sh-BORDERB);//|
		
		g.setColor(0xffffff);
		g.fillRect(BORDERL+gt.getValue()*(sw-BORDERL-BORDERR-8)/100,sh-HBAR+2,8,HBAR-BORDERB-4);
		g.setClip(0,0,sw,sh);
	}
	public void paintMenu(Graphics g,int selectedmenu,int colorselected,int colornomal)
	{
		g.setColor(selectedmenu==0?colorselected:colornomal);
		if(bSaved)g.drawString("最近阅读",sw/2,getHeight()/2-fonth*3,g.HCENTER|g.BOTTOM);
		g.setColor(selectedmenu==1?colorselected:colornomal);
		g.drawString("经典推荐",sw/2,getHeight()/2-fonth*2,g.HCENTER|g.BOTTOM);
		g.setColor(selectedmenu==2?colorselected:colornomal);
		g.drawString("全本完结",sw/2,getHeight()/2-fonth*1,g.HCENTER|g.BOTTOM);
		g.setColor(selectedmenu==3?colorselected:colornomal);
		g.drawString("最近更新",sw/2,getHeight()/2-fonth*0,g.HCENTER|g.BOTTOM);
		g.setColor(selectedmenu==4?colorselected:colornomal);
		g.drawString("最佳人气",sw/2,getHeight()/2+fonth*1,g.HCENTER|g.BOTTOM);
		g.setColor(selectedmenu==5?colorselected:colornomal);
		g.drawString("最佳点击",sw/2,getHeight()/2+fonth*2,g.HCENTER|g.BOTTOM);
		g.setColor(selectedmenu==6?colorselected:colornomal);
		g.drawString("个人资料(暂未开发)",sw/2,getHeight()/2+fonth*3,g.HCENTER|g.BOTTOM);
		g.setColor(selectedmenu==7?colorselected:colornomal);
		g.drawString("风格设置",sw/2,getHeight()/2+fonth*4,g.HCENTER|g.BOTTOM);
	}
	public void paintButton(Graphics g,int sw,int sh ,int type,int align,int color)
	{
		//g.setColor(0x0000ff);
		//g.drawRect(0,sh-fonth-1,sw-1,fonth);
		g.setColor(color);
		if(align == 0)//left
		{
			if(type == B_BACK)
				g.drawString(TEXT_BUTTON[B_BACK],1,sh-1,g.LEFT|g.BOTTOM);
			else if(type == B_REFRESH)
				g.drawString(TEXT_BUTTON[B_REFRESH],1,sh-1,g.LEFT|g.BOTTOM);
			else if(type == B_MENU)
				g.drawString(TEXT_BUTTON[B_MENU],1,sh-1,g.LEFT|g.BOTTOM);
			else if(type == B_EXIT)
				g.drawString(TEXT_BUTTON[B_EXIT],1,sh-1,g.LEFT|g.BOTTOM);
			else if(type == B_OK)
				g.drawString(TEXT_BUTTON[B_OK],1,sh-1,g.LEFT|g.BOTTOM);
			else if(type == B_INDEX)
				g.drawString(TEXT_BUTTON[B_INDEX],1,sh-1,g.LEFT|g.BOTTOM);
			else if(type == B_INFO)
				g.drawString(TEXT_BUTTON[B_INFO],1,sh-1,g.LEFT|g.BOTTOM);
			else if(type == B_DIR)
				g.drawString(TEXT_BUTTON[B_DIR],1,sh-1,g.LEFT|g.BOTTOM);
		}
		else if(align == 1)
		{
			if(type == B_BACK)
				g.drawString(TEXT_BUTTON[B_BACK],sw-1,sh-1,g.RIGHT|g.BOTTOM);
			else if(type == B_REFRESH)
				g.drawString(TEXT_BUTTON[B_REFRESH],sw-1,sh-1,g.RIGHT|g.BOTTOM);
			else if(type == B_MENU)
				g.drawString(TEXT_BUTTON[B_MENU],sw-1,sh-1,g.RIGHT|g.BOTTOM);
			else if(type == B_EXIT)
				g.drawString(TEXT_BUTTON[B_EXIT],sw-1,sh-1,g.RIGHT|g.BOTTOM);
			else if(type == B_OK)
				g.drawString(TEXT_BUTTON[B_OK],sw-1,sh-1,g.RIGHT|g.BOTTOM);
			else if(type == B_INDEX)
				g.drawString(TEXT_BUTTON[B_INDEX],sw-1,sh-1,g.RIGHT|g.BOTTOM);
			else if(type == B_INFO)
				g.drawString(TEXT_BUTTON[B_INFO],sw-1,sh-1,g.RIGHT|g.BOTTOM);
			else if(type == B_DIR)
				g.drawString(TEXT_BUTTON[B_DIR],sw-1,sh-1,g.RIGHT|g.BOTTOM);
		}
	}
	private static int rowsoff = 0;
	private static int rowsall = 0;
	private static int rowheight = 0;
	public void textPaint(Graphics g,String text,Font font,int x,int y,int w,int h,int rowoff,int colorfont,boolean bClip,boolean bRect,int colorRect,int sw,int sh)
	{
		x += 1;
		y += 1;
		w -= 2;
		h -= 2;
		if(bRect)
		{
			g.setColor(colorRect);
			g.drawRect(x-2,y-1,w+3,h+1);
		}
		if(text == null)
			return;
		if(bClip)
		{
			g.setClip(x,y,w-1,h-1);
		}
		g.setFont(font);
		g.setColor(colorfont);
		//text = "一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十";
		//text = "欢迎来到喔喔文学\n可以电脑访问\n可以手机访问\nwww.oomiz.com";
		byte[] ba = {65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,-61,-124,-61,-92,-61,-106,-61,-74,-61,-97,-61,-100,-61,-68,-61,-126,-61,-94,-61,-128,-61,-96,-61,-121,-61,-89,-61,-118,-61,-86,-61,-117,-61,-85,-61,-119,-61,-87,-61,-120,-61,-88,-59,-110,-59,-109,-61,-114,-61,-82,-61,-113,-61,-81,-61,-108,-61,-76,-61,-101,-61,-69,-61,-100,-61,-68,-61,-103,-61,-71};
		String outem = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
		String punc = ":,.?!'\"";
		try
		{
			outem = new String(ba,"UTF-8");
		}catch(Exception e){System.out.println(e.getMessage());}
		//System.out.println(outem.length());
		if(text.length() == 0)
			return;
		int wordheight = font.getHeight();
		
		int rows = 1;
		//System.out.println(text);
		while(font.stringWidth(text) > w || text.indexOf('\n')>-1)
		{
			int i = 0;
			while(font.stringWidth(text.substring(0,i+1)) < w && i<text.length()-1 && text.charAt(i)!='\n')
			{
				i++;
			}
			//System.out.println(i);
			if(punc.indexOf(text.charAt(i))>-1 && i<text.length()-1)
				i++;
			if(text.charAt(i) == '\n')
			{
				g.drawSubstring(text.substring(0,i)+"----",0,i,x,y+(rows-rowoff)*wordheight,g.LEFT|g.BOTTOM);
				i++;
				while(text.charAt(i)==' ' && i<text.length()-1)i++;
				text = text.substring(i);
			}
			else if(outem.indexOf(text.charAt(i))>-1 && outem.indexOf(text.charAt(i-1))>-1)
			{
				//int tem = text.lastIndexOf(' ',i);
				//if(tem<1)tem = text.lastIndexOf('@',i);
				//if(tem<1)tem = text.lastIndexOf(',',i);
				//if(tem<1)tem = text.lastIndexOf('!',i);
				//if(tem<1)tem = text.lastIndexOf('.',i);
				//if(tem>0)i = tem;
				g.drawSubstring(text.substring(0,i)+"----",0,i,x,y+(rows-rowoff)*wordheight,g.LEFT|g.BOTTOM);
				while(text.charAt(i)==' ' && i<text.length()-1)i++;
				text = text.substring(i);			}
			else
			{
				g.drawSubstring(text.substring(0,i)+"----",0,i,x,y+(rows-rowoff)*wordheight,g.LEFT|g.BOTTOM);
				while(text.charAt(i)==' ' && i<text.length()-1)i++;
				text = text.substring(i);
			}
			rows++;
		}
		g.drawSubstring(text,0,text.length(),x,y+(rows-rowoff)*wordheight,g.LEFT|g.BOTTOM);
		g.setClip(0,0,sw,sh);
		rowsall = rows;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -