import java.awt.event.MouseEvent
import java.awt.event.MouseListener
import javax.swing.*
import java.awt.*
import java.util.LinkedList
public class DrawPoint extends JFrame implements MouseListener{
private LinkedList<Point> list//新建一个Point类型的链表存储用于存储“节点”
private final int WIDTH=318,HEIGHT=340
private Dimension scrnsize
private Toolkit toolkit = Toolkit.getDefaultToolkit()
public DrawPoint() {
// TODO Auto-generated constructor stub
list=new LinkedList<Point>()//链表初始化
//窗口设置部分,不比细究
this.setSize(WIDTH,HEIGHT)
this.setResizable(false)
this.setDefaultCloseOperation(EXIT_ON_CLOSE)
scrnsize = toolkit.getScreenSize()
setLocation(scrnsize.width / 2 - getWidth() / 2,
scrnsize.height / 2 - getHeight() / 2)
this.addMouseListener(this)//添加窗口鼠标监听
this.setVisible(true)
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
//为鼠标按钮释放添加事件处理
// TODO Auto-generated method stub
int x=e.getX()//获取鼠标的x坐标
int y=e.getY()//获取鼠标的y坐标
String str=JOptionPane.showInputDialog(null, "请输入改点标记文字")
//显示对话框,根据用户输入得到标记文字
if(str!=null){//若标记文字不为空,则该点视为有效点,将该点加入链表
list.add(new Point(x,y,str))
}
repaint()//用该函数调用paint()方法,进行重构 *** 作
this.validate()
}
public void paint(Graphics g){
if(list.isEmpty())//如果链表为空,不进行任何 *** 作,直接返回
return
for(Point p:list){//遍历数组,获取所有节点
g.drawOval(p.getX(), p.getY(), 2, 2)//先画点
g.drawString(p.getS(), p.getX()+5, p.getY()+6)//再标注节点的描述性文字
}
}
public static void main(String args[]){
DrawPoint p=new DrawPoint()
}
}
class Point {//节点类,包含x坐标,y坐标,描述性文字3个属性
private int x,y//x坐标和y坐标
private String s//描述性文字
public Point(){
x=0
y=0
s=""
}
public Point(int x,int y,String s){
this.x=x
this.y=y
this.s=s
}
public int getX(){
return x
}
public int getY(){
return y
}
public String getS(){
return s
}
}
wx.createSelectorQuery()基础库 1.4.0 开始支持,低版本需做兼容处理
返回一个SelectorQuery对象实例。可以在这个实例上使用select等方法选择节点,并使用boundingClientRect等方法选择需要查询的信息。
示例代码:
Page({
queryMultipleNodes: function(){var query = wx.createSelectorQuery()
query.select('#the-id').boundingClientRect()
query.selectViewport().scrollOffset()
query.exec(function(res){
res[0].top // #the-id节点的上边界坐标 res[1].scrollTop // 显示区域的竖直滚动位置})
}
})
selectorQuery
selectorQuery 对象的方法列表:
方法 参数 说明
select selector 参考下面详细介绍
selectAll selector 参考下面详细介绍
selectViewport 参考下面详细介绍
exec [callback] 参考下面详细介绍
selectorQuery.select(selector)
在当前页面下选择第一个匹配选择器selector的节点,返回一个NodesRef对象实例,可以用于获取节点信息。
selector类似于CSS的选择器,但仅支持下列语法。
ID选择器:#the-id
class选择器(可以连续指定多个):.a-class.another-class
子元素选择器:.the-parent >#the-child.a-class
多选择器的并集:#a-node, .some-other-nodes
selectorQuery.selectAll(selector)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)