如何在Java中打印二叉树,以便输出如下:
4
/ \
2 5
Run Code Online (Sandbox Code Playgroud)
我的节点:
public class Node<A extends Comparable> {
Node<A> left, right;
A data;
public Node(A data){
this.data = data;
}
}
Run Code Online (Sandbox Code Playgroud) 我想在Java中绘制图形(节点和边).但是,由于我不知道如何去做,我想在开始之前先给出一些建议.
我该怎么做?
使用Graphics2D包,对吗?
节点的标签怎么样?我应该使用drawString之类的东西并手动处理所有"居中"或为此创建一个JLabel吗?我可以在Graphics2D环境中放置JLabel吗?
我搜索过但没有找到任何简单的实现.如果您知道其中一个,请在答案中提供链接.
编辑:我正在寻找的解决方案应该能够删除节点,拖动节点,编辑标签,创建节点,所有这些都与鼠标事件.
谢谢.
我正在寻找改变我的JTree(Swing)的不同图标
java文档解释了如果节点是否为叶子,如何更改图标,但这不是我正在搜索的内容.
对我来说,如果一个节点是一个叶子,或者我只是想在节点处于三个节点的第一/第二/第三深度级别时更改图标.
我正在使用NetBeans GUI编辑器创建一个应用程序,我希望在其中有一个JSplitPane,其顶部组件将Canvas在a中JScrollPane,而底部组件将是a JTextArea或类似的东西.
当我向下拉分隔器,从而增加顶部组件的大小时,一切似乎都调整得很好.
当我试图向上推动分频器时出现问题:分频器似乎在Canvas(也可能在它下面JScrollPane)下方.
我试图首选/最小/最大的尺寸的各种组合JScrollPane和Canvas,但似乎没有任何工作.
这是Netbeans生成的代码的一部分,可能与手头的问题有关:
jSplitPane1 = new javax.swing.JSplitPane();
jScrollPane1 = new javax.swing.JScrollPane();
canvas1 = new java.awt.Canvas();
jTextField1 = new javax.swing.JTextField();
jSplitPane1.setDividerLocation(300);
jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
jScrollPane1.setViewportView(canvas1);
jSplitPane1.setTopComponent(jScrollPane1);
jTextField1.setText("jTextField1");
jSplitPane1.setRightComponent(jTextField1);
Run Code Online (Sandbox Code Playgroud)
由于这是我的第一个问题,我不允许在问题中嵌入图像,因此我将发布链接:

红色箭头表示分隔线的位置.
在此先感谢您的时间.
我使用实施实验OOP语言和现在的基准垃圾收集存储性能基准测试.现在我想检查/打印下面的小深度基准(n = 2,3,4,..).
通过该buildTreeDepth方法生成树(具有4个子节点的林).代码如下:
import java.util.Arrays;
public final class StorageSimple {
private int count;
private int seed = 74755;
public int randomNext() {
seed = ((seed * 1309) + 13849) & 65535;
return seed;
}
private Object buildTreeDepth(final int depth) {
count++;
if (depth == 1) {
return new Object[randomNext() % 10 + 1];
} else {
Object[] arr = new Object[4];
Arrays.setAll(arr, v -> buildTreeDepth(depth - 1));
return arr;
}
}
public Object benchmark() { …Run Code Online (Sandbox Code Playgroud) java ×5
swing ×2
benchmarking ×1
binary-tree ×1
drawing ×1
graph ×1
icons ×1
jscrollpane ×1
jsplitpane ×1
jtree ×1
nodes ×1
printing ×1
tree ×1