hyperlink.java

来自「最强手机阅读器Anyview3.0版的界面代码」· Java 代码 · 共 76 行

JAVA
76
字号
package com.ismyway.fairyui;

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Graphics;

import com.ismyway.anyview.others.Settings;
import com.ismyway.util.Theme;

public class HyperLink extends TextBlock {
	private String link = "";

	public HyperLink(String text, String link) {
		super(text);
		this.link = link;
		this.addCommand(new Command(link, Command.ITEM, 1));
	}

	public void paint(Graphics g, int adjustx, int adjusty) {
		//System.out.println(getInnerLeft() + ", " + getInnerTop() + ", " + getLeft() + ", " + getTop());

		int fontHeight = getFont().getHeight();
		g.setFont(getFont());
		int top = getTop() - adjusty;

		int panelHeight = MainCanvas.getInstance().getHeight();
		if (!isSelected()) {
			if (lines.size() > 0) {
				g.setColor(Theme.linkColor);
				g.drawString((String) lines.elementAt(0), getLeft(), top, ANCHOR);
				//				g.drawLine(getLeft(), top + fontHeight, getLeft()
				//						+ f.stringWidth((String) lines.elementAt(0)), top + fontHeight);
				for (int i = 1; i < lines.size(); i++) {
					if (top > panelHeight) {
						return;
					}
					top += getFont().getHeight() + Settings.HORPADDING;
					if (top < 0) {
						continue;
					}
					g.drawString((String) lines.elementAt(i), Settings.VECPADDING, top, ANCHOR);
				}
			}
		} else {
			if (lines.size() > 0) {
				g.setColor(Theme.linkColor);
				g.fillRect(getLeft(), top, getFont().stringWidth((String) lines.elementAt(0)), fontHeight);
				g.setColor(Theme.linkBackground);
				g.drawString((String) lines.elementAt(0), getLeft(), top, 20);
				for (int i = 1; i < lines.size(); i++) {
					if (top > panelHeight) {
						return;
					}
					top += getFont().getHeight() + Settings.HORPADDING;
					if (top < 0) {
						continue;
					}
					g.setColor(Theme.linkColor);
					g
							.fillRect(Settings.VECPADDING, top, getFont().stringWidth((String) lines.elementAt(i)),
									fontHeight);
					g.setColor(Theme.linkBackground);
					g.drawString((String) lines.elementAt(i), Settings.VECPADDING, top, ANCHOR);
				}
			}
		}
	}

	public String getLink() {
		return link;
	}

	public void setLink(String link) {
		this.link = link;
	}
}

⌨️ 快捷键说明

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