我无法显示具有自动布局的JGraphX.
我的程序(下面的代码)创建一个这样的输出:

一个足够的结果可能看起来像这样(我用手移动它们):

我不必坚持JGraphX.我还测试JUNG和JGraphT.但到目前为止,这是我最好的结果.我需要的是我的数据视图,其上有定向的eges和一些标签.
我制作了一个示例代码,展示了它是如何创建的.它类似于http://forum.jgraph.com/questions/4810/how-to-layout-nodes-automatically-using-fast-organic-layout.有一个评论从2012年,提到相同的问题"[...]但是我注意到节点有时重叠,你知道一种方法来解决这个问题,我已经玩了属性,它似乎很随意.一般来说如何改善外观的任何建议?"
public class Test extends JFrame {
public static void main(String[] args) {
JFrame f = new JFrame();
f.setSize(800, 800);
f.setLocation(300, 200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final mxGraph graph = new mxGraph();
mxGraphComponent graphComponent = new mxGraphComponent(graph);
f.getContentPane().add(graphComponent, BorderLayout.CENTER);
f.setVisible(true);
Object parent = graph.getDefaultParent();
graph.getModel().beginUpdate();
try {
Object start = graph.insertVertex(parent, "start", "start", 100,
100, 80, 30);
for (int i = 0; i < 10; i++) {
Object a = graph.insertVertex(parent, …Run Code Online (Sandbox Code Playgroud) tl;dr:如何在所有测试运行之前将自定义数据提供程序实例化为 Spring 组件?
是否有一种聪明的方法可以将 Spring 组件注入到实现 的自定义 JUnit Jupiter 扩展中BeforeAllCallback?该beforeAll方法应该在MyTestClass执行之前触发一个复杂的过程@ExtendWith(OncePerTestRunExtension.class)。
我创建了一个 Spring Boot 应用程序 ( src/main/java),它为我的测试 ( src/test/java) 提供了必要的数据。为测试准备数据可能需要长达几个小时的时间。它还使我可以抽象访问一些休息端点。
在所有测试类的过程之间,数据不会改变。所以我只想提取一次数据。
只在一个类中编写所有测试是可行的,但我认为分成不同的类可以提供更好的概览。
我想将网站解析为Perl数据结构.首先我加载页面
use LWP::Simple;
my $html = get("http://f.oo");
Run Code Online (Sandbox Code Playgroud)
现在我知道两种方法来处理它.首先是正则表达式并对模块进行限制.
我开始阅读HTML :: Parser,并找到了一些例子.但我对Perl的知识并不确定.
我的代码示例继续
my @links;
my $p = HTML::Parser->new();
$p->handler(start => \&start_handler,"tagname,attr,self");
$p->parse($html);
foreach my $link(@links){
print "Linktext: ",$link->[1],"\tURL: ",$link->[0],"\n";
}
sub start_handler{
return if(shift ne 'a');
my ($class) = shift->{href};
my $self = shift;
my $text;
$self->handler(text => sub{$text = shift;},"dtext");
$self->handler(end => sub{push(@links,[$class,$text]) if(shift eq 'a')},"tagname");
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么有两次换班.secound应该是自我指针.但第一个让我觉得自我引用已经全部变为shiftet,用作Hash并且href的值存储在其中$class.有人可以解释这一行(my ($class) = shift->{href};吗?
除了这种缺乏,我不想来解析所有的URL,我想把之间的所有代码<div class ="foo">和</div>成一个字符串,其中大量的代码之间,特别是其他<div></div>标签.所以我或模块必须找到正确的结束.之后,我计划再次扫描字符串,找到特殊的类,比如<h1>,<h2>, <p class …
我有这样的文件夹结构.
Project/src/folder/folder/folder/xyz.java
/img/background.jpg
Run Code Online (Sandbox Code Playgroud)
我想将background.jpg放入JPanel中xyz.java.仅为背景.而且我已经完成了
private ImageIcon createImageIcon(String path, String description) {
java.net.URL imgURL = getClass().getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL, description);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
但问题是图像必须与xyz.java
我搜索的文件夹在同一文件夹中,并发现这可以解决,getResourceAsStream("path")但我无法提出足够的知识来解决这个问题.这对我很重要,因为我想在不同的操作系统上将我的程序作为*.jar文件运行.
我的问题是我不明白getRessourceAsStream("path")应该如何工作不同.我发现没有适合我的教程.似乎大多数人将它用于不同的.jar文件或Applet.我不知道Stream可以做什么,getRessourceAsStream("path")在哪里启动(意味着我如何编写路径).缺乏知识......
编辑:我找到了一个解决方案,我不必给出总路径.
img = ImageIO.read(getClass().getResource("../../../../img/bg_1.jpg"));
我没有测试它,但它也应该在其他系统上运行.但问题是,我只能在日食中启动我的程序.当我将它导出到*.jar文件时,它会很好但它不会加载图片.即使我已经setPreferredSize,它也会将窗口缩小到最小.所以我应该可以使用Stream解决方案.但现在是床上用品.
编辑:当我将图像放入包中时,相对路径工作正常.不是我真正想要的,但在6小时后猜测这个小问题我不得不带一些鱼在我的海洋中游泳......
type Array a = Int -> a
emptyArray :: Array a
emptyArray i =
error ("Access to non-initialized index " ++ show i)
putIndex :: Array a -> Int -> a -> Array a
putIndex ar i v = ar'
where ar' j | j==i = v
| otherwise = ar j
getIndex :: Array a -> Int -> a
getIndex a i = (a i)
Run Code Online (Sandbox Code Playgroud)
我不明白emptyArray和putIndex功能.问题是:
j==i?
v是类型a还是?在这种情况下,它不会返回一个数组. …我开始尝试使用Labda Expressions来实现布尔值,以获得布尔输入参数列表.对于"或"和"和",我写了以下声明:
要么: expressions.stream().anyMatch(e -> e.evaluate(input));
和: expressions.stream().allMatch(e -> e.evaluate(input));
e.evaluate(input)返回true或false.但是由于没有已经实现的onceMatch方法,我坚持使用XOR.
第一个想法是过滤所有真值并检查它是否只是一个:
return expressions.stream().filter(e -> e.evaluate(input) == true).collect(Collectors.counting()) == 1;
Run Code Online (Sandbox Code Playgroud)
但我想在一个lambda表达式中看到它.
我完成了一个给定的代码示例作为家庭作业,它在我的64位OS X设备(使用gcc编译)上工作正常.但它不会在我的Windows 8 64位机器上执行(用MinGW编译 - gcc).我在两台机器上都使用了gcc sort.c -Wall -Wextra.不执行意味着程序在无限循环中停留在第64行.此外,我认识到这发生在第64行的循环达到11 之后.
它也可以在Codepad上运行(http://codepad.org/BoLhqtzv).
我尝试使用不同的指针算术方法来访问数组,但没有一个工作.
程序对一个长度为n的数组x进行排序.在数组x中就像一个包.所以可以多次出现一个数字.函数sort获取Array x的长度,数组x上的指针和不同数字的计数(10:从0到9).诀窍是,数组muh知道数字x中出现的数字的频率.这是有效的,因为x中的数字是连续的N(自然数).
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define M 10
/* This function generates an array of random integers in the range [0,M-1] of length n. */
int* random_array(const int n) {
int *x;
int i;
x = (int*) malloc(n * sizeof(int));
srand(time(NULL ));
for (i = 0; i < n; i++) { …Run Code Online (Sandbox Code Playgroud)