使用ScrollViewer装饰项目集合控件时,性能似乎会降低.在我正在处理的特定应用程序中,当我使用ScrollViewer装饰VirtualizingStackPanel时,应用程序似乎受到了很大的打击.我试图在这个特定的容器中加载250个项目,希望用户可以滚动浏览所有250个项目.有人可以了解一下ScrollViewer的内部结构,以及为什么它的包含可以减慢应用程序的初始负载?
<ScrollViewer
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto"
Visibility= "Visible">
<ListView ItemsSource="{Binding EmployeeAccounts}">
<ListView.ItemsPanel >
<ItemsPanelTemplate>
<VirtualizingStackPanel />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
谢谢
在gradle中,有没有办法引用外部罐子.我有一些外部罐子,坐在项目结构外的另一个文件夹中.有没有办法在build.gradle文件中添加对这些jar的引用,以便在编译过程中获取它们?
谢谢
编辑:
我使用allprojects任务修改了mu build.gradle,该任务具有以下"子任务(?)",如下所示:
repositories{
flatDir name:'ExternalJars',dirs:'<path to the jars>'
dependencies{
compile: 'jarname:jarname:version'
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎使我的构建运行得很好.当我创建存储库并指定依赖项时,是否有人可以了解到底发生了什么?- 谢谢
我对其中一个分支做了一大堆修改.现在我试图将这些更改与主干合并.为了做到这一点,我在我的机器上创建了两个工作文件夹,名为BRANCH和TRUNK.我在BRANCH目录中创建了一个svn co分支,在TRUNK文件夹中创建了一个svn co的trunk.退房完成后,我继续打开了我在分支机构所做的所有签到的颠覆历史.一旦我获得了所有签到的版本号,我就进入了我的TRUNK文件夹并发出以下命令:
svn merge --dry-run -r1xx0:1xx1 svn+ssh://pathtomybranch/
Run Code Online (Sandbox Code Playgroud)
有趣的是,上面的命令执行没有任何输出,这实际上表明我的分支和我的版本没有任何差异.这是不可能的,因为我尝试合并的版本的文件内容不同.
有人对这里可能出现的问题有一些想法吗?
谢谢
我的机器上有一个旧版本的程序.该程序最近进行了版本升级.我以前运行旧程序的方式是键入"runProgram".我的程序的脚本路径在我的PATH变量中指定为
PATH = ....:/path/to/my/old/programs/bin
Run Code Online (Sandbox Code Playgroud)
我想在我的旧程序旁边运行同一个程序的新版本,我想这样做的方法是修改我的PATH变量,如下所示:
PATH = ....:/path/to/my/old/programs/bin:/path/to/my/new/programs/bin
Run Code Online (Sandbox Code Playgroud)
我想要实现的是一些别名这两个路径的方法,这样当我输入'runVersion1'时,执行以前的版本,当我输入'runVersion2'时,新版本被执行了吗?
有没有办法实现这一目标?
谢谢
我正在尝试使用callables实现Fibonacci序列,并将我的Fibonacci的初始值调用为3,4,5,6和2000.我得到的输出如下:
3 5 8 13 -820905900187520670
问题是当我试图在我的可调用中计算fib(2000)时.有人可以看看下面提供的代码,看看我的方法出错了:
import java.util.concurrent.*;
import java.util.*;
class FibonacciGen implements Callable<Long>{
private Long fib;
public FibonacciGen(long num){
this.fib = num;
}
public Long call(){
return calculateFibonacci(fib);
}
private long calculateFibonacci(long someNum){
long firstNum = 0L;
long secondNum = 1L;
long counter = 0L;
while(counter<someNum){
long fibCalc = secondNum+firstNum;
firstNum = secondNum;
secondNum = fibCalc;
counter= counter+1L;
}
return secondNum;
}
}
public class FibonacciCallable{
public static void main(String[] args){
ExecutorService exec = Executors.newCachedThreadPool();
ArrayList<Callable<Long>> results = …Run Code Online (Sandbox Code Playgroud) 我试图创建一个对象图,我需要使用一些遍历算法遍历.在这个时刻,我被困在尝试使用我的自定义对象创建图形.我试图完成它的方式如下:
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/depth_first_search.hpp>
#include <iostream>
using namespace std;
typedef boost::adjacency_list<boost::vecS,boost::vecS,boost::directedS> CustomGraph;
typedef boost::graph_traits<CustomGraph>::vertex_descriptor CustomVertex;
class CustomVisitor:public boost::default_dfs_visitor
{
public:
void discover_vertex(CustomVertex v,const CustomGraph& taskGraph) const
{
cerr<<v<<endl;
return;
}
};
class CustomObject{
private:
int currentId;
public:
CustomObject(int id){
currentId = id;
}
};
int main()
{
CustomGraph customGraph;
CustomObject* obj0 = new CustomObject(0);
CustomObject* obj1 = new CustomObject(1);
CustomObject* obj2 = new CustomObject(2);
CustomObject* obj3 = new CustomObject(3);
typedef std::pair<CustomObject*,CustomObject*> Edge;
std::vector<Edge> edgeVec;
edgeVec.push_back(Edge(obj0,obj1));
edgeVec.push_back(Edge(obj0,obj2));
edgeVec.push_back(Edge(obj1,obj2));
edgeVec.push_back(Edge(obj1,obj3));
customGraph(edgeVec.begin(),edgeVec.end()); …Run Code Online (Sandbox Code Playgroud) 我在理解以下几段scala代码背后的基本原理时遇到了一些麻烦:
我们都知道REPL中1 + 1 = 2.
scala> 1 + 1
res0: Int = 2
Run Code Online (Sandbox Code Playgroud)
如果我输入"Abc"+"Def",我应该在REPL中输入"AbcDef".
scala> "Abc" + "Def"
res6: java.lang.String = AbcDef
Run Code Online (Sandbox Code Playgroud)
现在假设我在String"Abc"上调用+方法并将"Def"作为参数传递:
scala> "Abc".+("Def")
res7: java.lang.String = AbcDef
Run Code Online (Sandbox Code Playgroud)
根据相同的理由,为什么像1. +(1)这样的东西会返回一个双2.0?
scala> 1.+(1)
res1: Double = 2.0
Run Code Online (Sandbox Code Playgroud)
另外,为什么将参数"1"作为参数传递给"1.01",如下所示:
scala> 1.+("1")
res9: String = 1.01
Run Code Online (Sandbox Code Playgroud)
为什么返回的结果是String而不是"1"的努力转换成调用者类型?
谢谢
我有一个文本文件,每行包含一个 json 值。我的文件如下:
{"id":"a","family":"root","parent":nil,"value":"valueofa"}
{"id":"b1","family":"b","parent":"a","value":"valueofb1"}
{"id":"c1","family":"c","parent":"b1","value":"valueofc1"}
{"id":"c2","family":"c","parent":"b1","value":"valueofc2"}
{"id":"b2","family":"b","parent":"root","value":"valueofb2"}
{"id":"d1","family":"d","parent":"b1","value":"valueofd1"}
Run Code Online (Sandbox Code Playgroud)
在上面给出的 json 中,我们的 family 属性表示一个层次结构,我们将“root”作为根,“b”作为“root”的孩子,“c”作为“b”和“d”的孩子也是“b”的孩子。
这个想法是遍历文件并在树中的适当位置添加正在读取的节点。一种方法是将这些条目读入“地图”,然后将此地图用于任何树操作。对于任何复杂的树操作,我不确定这将如何工作。很有可能根据某个要求,我可能必须将子项与现有父项分离并将其附加到另一个父项。显然 Clojure 拉链应该在这方面有所帮助,但我对拉链中节点的层次结构如何工作感到有些困惑。
如果有人能在这里指出我正确的方向,那就太好了。
该程序大多数工作正常,但不打开任何窗口.它应该在桌面右下方显示一个小对话框.但是对于另一个人来说,编译相同的代码没有问题.我们有相同的Java运行时(1.8_u40).我怎样才能解决这个问题?
我把代码放在下面:
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.RoundRectangle2D;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JProgressBar;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class ProgressDialog {
private JDialog dialogFrame;
private JProgressBar progressBar;
private JLabel headingLabel;
private Uploader callerUploader;
public ProgressDialog() {
dialogFrame = new JDialog();
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
| UnsupportedLookAndFeelException ex) {
System.err.println(ex.toString());
}
dialogFrame.setSize(200, 50);
dialogFrame.setLayout(new GridBagLayout());
GridBagConstraints constraints = new GridBagConstraints(); …Run Code Online (Sandbox Code Playgroud) 在尝试使用scala中的Options时,我遇到了这个特殊的问题.
我开始创建List [Option [Int]],如下所示:
scala> List(Some(1),Some(2),None,Some(3))
res0: List[Option[Int]] = List(Some(1), Some(2), None, Some(3))
Run Code Online (Sandbox Code Playgroud)
然后我尝试在res0中列表的条目上映射一个加法,如下所示:
scala> res0 map (_ + 1)
Run Code Online (Sandbox Code Playgroud)
这给了我错误:
<console>:9: error: type mismatch;
found : Int(1)
required: String
res0 map (_ + 1)
^
Run Code Online (Sandbox Code Playgroud)
然后我尝试在条目上添加flatMapping,如下所示:
scala> res0 flatMap (_ + 1)
Run Code Online (Sandbox Code Playgroud)
这给了我同样的错误:
<console>:9: error: type mismatch;
found : Int(1)
required: String
res0 flatMap (_ + 1)
^
Run Code Online (Sandbox Code Playgroud)
但是类似的东西res0.flatMap(r => r)可以很好地结果:
res9: List[Int] = List(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我为什么将地图添加到1会对地图和flatMap都失败吗?
java ×2
scala ×2
types ×2
.net ×1
alias ×1
awt ×1
boost ×1
c++ ×1
callable ×1
casting ×1
classpath ×1
clojure ×1
clr ×1
compilation ×1
fibonacci ×1
gradle ×1
graph ×1
jar ×1
java-8 ×1
jdialog ×1
json ×1
linux ×1
long-integer ×1
map ×1
merge ×1
object ×1
path ×1
return-type ×1
return-value ×1
scrollviewer ×1
shell ×1
svn ×1
swing ×1
tree ×1
wpf ×1
xaml ×1