我需要在我的网络应用程序中使用一项功能来撤消最后一点.已经有一些解决方案,如这对于给定的问题,它可以处理它在一定程度上:
var undo = false; // set this to true in the Esc key handler
var draw = new ol.interaction.Draw({
// ...
geometryFunction: function(coords, geom) {
if (!geom) {
geom = new ol.geom.LineString(null);
}
if (undo) {
if (coords.length > 1) {
coords.pop();
}
undo = false;
}
geom.setCoordinates(coords);
return geom;
}
});
Run Code Online (Sandbox Code Playgroud)
但似乎有一个我无法弄清楚的错误.
使用这个plunker你可以尝试我要解释的内容:
如果你绘制一条带有一些顶点的线然后撤消(点击ESC)直到线上的最后一个点被移除,然后在刚刚撤消的同一点完成(或接近足够),最后一段将被删除,为什么?
由数字解释:
1-绘制线要素
我试了好几次就发生了.如果添加一个不接近移除的点或添加多个点,则不会发生这种情况.
编辑
似乎OL3检查几何的最后两个坐标,如果它们相同则决定完成绘图会话,并删除最后一个.我尝试了下面的代码:
function geometryChange(coordinates, geometry){
if (!geometry) {
geometry = new ol.geom.LineString(null); …Run Code Online (Sandbox Code Playgroud) 我是个新手,我已经使用React 14编写了没有任何编译器的代码。现在,我想使用Karma-Jasmine进行单元测试,但是看来我的测试未能呈现该应用程序。
我有以下结构:
node_modules
MyApp/
/js/ *.js
/test/*.js
Karma.conf.js
package.json
index.html
Run Code Online (Sandbox Code Playgroud)
我的index.html:
<html>
<div id="content"></div>
<script src="js/react-0.14.7.js"></script>
<script src="js/react-dom-0.14.7.js"></script>
<script src="js/App.js"></script>
<script src="js/main.js"></script>
<link rel="stylesheet" href="style.css">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的main.js:
ReactDOM.render(React.createElement(App), document.getElementById('content'))
Run Code Online (Sandbox Code Playgroud)
我的应用程序如下所示:
var h = React.createElement;
var Command = React.createClass({
render: function(){
return h(....)
}
})
Run Code Online (Sandbox Code Playgroud)
我的测试代码如下:
describe('App', function() {
beforeEach(function() {
fixture.load('index.htm');
});
beforeEach(function () {
ReactDOM.render(React.createElement(App), document.getElementById('content'));
});
it('accepts elements', function() {
document.getElementById('x').value = 1;
document.getElementById('y').value = 2;
document.getElementById('setbtn').click();
});
});
Run Code Online (Sandbox Code Playgroud)
这是错误:
Uncaught ReferenceError: App is not defined …Run Code Online (Sandbox Code Playgroud) 我用JAVA语言编写了一个程序,它使用Scanner类接受来自控制台的输入....
现在我想在我的代码中添加此功能,以便在用户按下Esc Button时存在循环(while).到目前为止,我认为键盘类可以帮助我,但它就像扫描仪...我试图使用事件,但不知道如何正确使用它们....
源代码:
package switchCase_v1;
import cs1.Keyboard;
import java.util.EventObject;
import java.awt.AWTEvent;
import java.awt.event.KeyEvent;
import java.awt.event.ComponentEvent;
import java.awt.event.InputEvent;
import java.util.*;
public class SwithCase {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("enter the name or number of month: ");
int monthNumber = input.nextInt();
while (true) {
KeyEvent button;
if (button.getKeyCode() == 27)
break;
else if (monthNumber == '\n') {
System.out.println("enter a number");
monthNumber = input.nextInt();
} else {
switch (monthNumber) { …Run Code Online (Sandbox Code Playgroud) 我写了下面的代码,里面有一个文本字段和一个按钮.输入字符并按下按钮后,将创建一个标签,其标题与在字段中输入的标题相同.
几个选项卡可以以相同的方式创建.....现在再次在新选项卡中,文本字段和按钮存在一个长文本窗格以显示结果....
我想在每个标签的文本窗格中显示输入到文本字段的文本...
现在请带领我学习如何以及在哪里将监听器放在选项卡的按钮上......并推荐任何其他必需的监听器(我认为应该有另一个监听器来指导我关注或选择的选项卡).
应该提到的是,我已将这些选项卡添加到数组列表中以供任何重用,但我不知道我是否正确或如何使用它?
package test;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.JTextPane;
public class TestGUI extends JFrame {
private JTextField jTextField1;
private JButton jButton1;
static ArrayList<JPanel> ary = new ArrayList<JPanel>();
private int tabIndex = 0;
static int index = 0;
private JTabbedPane tabbedPane;
/**
* @param args
*/
public TestGUI() {
super("Testing Tab Frame");
setLayout(null);
Handler but1 = new Handler();
jTextField1 = new JTextField();
jTextField1.setVisible(true);
jTextField1.setBounds(12, 12, …Run Code Online (Sandbox Code Playgroud) 我试图遍历在以下代码中创建的二叉树.确切地说,二叉树是一个类,应该包含一个调用另一个函数的迭代器,即inorder().这个方法应该是一个递归生成器并在每次迭代中产生节点的值.我试图创建一个跟随节点的字典但是当我尝试调用inorder()方法时,它不起作用.有什么遗漏点我不知道吗?我使用while而它创建了树的左侧字典(这是一种笨拙的方式).请帮我完成这段代码.
d=[]
# A binary tree class.
class Tree(object):
def __init__(self, label, left=None, right=None):
self.label = label
self.left = left
self.right = right
self.d=dict()
def __repr__(self, level=0, indent=" "):
s = level * indent + self.label
if self.left:
s = s + "\n" + self.left.__repr__(level + 1, indent)
if self.right:
s = s + "\n" + self.right.__repr__(level + 1, indent)
return s
def traverse(self):
if self.left:
lastLabel=self.label
self.left.traverse()
if self.right:
lastLabel=self.label
d.append(lastLabel)
self.right.traverse()
else:
d.append(self.label)
return d
def __iter__(self):
return …Run Code Online (Sandbox Code Playgroud) 我想在for循环中从类中创建几个对象.但我不知道如何编码.我写的内容创建了一个新对象,但它覆盖了前一个对象.
package assginment1_version4;
import java.util.*;
public class Client {
public static void main (String[] args) {
System.out.println ("this is a bill database");
System.out.println ("add a user?(Y/N)");
Scanner input = new Scanner(System.in);
String answer = input.nextLine ();
ArrayList ary = new ArrayList ();
for (int i=1 ; i < 100; i++) {
if (answer.equalsIgnoreCase("y")) {
Bill bill1 = new Bill();
System.out.println("user first name:");
bill1.setFname (input.nextLine());
System.out.println("user Last name:");
bill1.setLname (input.nextLine());
System.out.println ("add a user?(Y/N)");
answer = input.nextLine ();
} else if …Run Code Online (Sandbox Code Playgroud) 我想通过询问SPARQL查询来提取我的本体的两个实例之间的实例链.例如,在下图中,如果我想知道A如何连接到E,则查询的结果应该类似于A,B,D,F,E的列表.
应该如何设计本体并建立查询?它甚至可能吗?
我有一个Python代码,想要在字符串中找到元音.我写的代码遵循....我尝试使用For-Loop的不同组合,但它抛出了两个不同的错误;
如何找到一行中的所有元音?
str1 = 'sator arepo tenet opera rotas'
vow1 = [str1[i] for i in str1 if str1[i] is 'a' | 'e' | 'o']
Run Code Online (Sandbox Code Playgroud)