📄 maincanvas.java
字号:
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 + -