java - 如何最好地显示 JGraphX?

标签 java graph jlabel

是否可以通过将 JGraphX 添加到 JLable 来显示它? testJGraphX(如下)的大部分内容取自 JGraphX Hello World 示例,但该图未显示在 jLable1 中。 对于 JGraphX,是否有比 JLabel 更好的容器?

public class TestJGraphX extends javax.swing.JFrame implements TableModelListener {
    public TestJGraphX() {
        initComponents();
        testJGraphX();
    }
    private void initComponents() {
        jLabel1 = new javax.swing.JLabel();
  ...
  .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 304, Short.MAX_VALUE)
  ...
  .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 170, Short.MAX_VALUE))
  ...
 }
    private void testJGraphX() {
        mxGraph graph = new mxGraph();
        Object parent = graph.getDefaultParent();
        graph.getModel().beginUpdate();
        try {
            Object v1 = graph.insertVertex(parent, null, "Hello", 20, 20, 80, 30);
            Object v2 = graph.insertVertex(parent, null, "World!", 240, 150, 80, 30);
            graph.insertEdge(parent, null, "Edge", v1, v2);
        } finally {
            graph.getModel().endUpdate();
        }
        mxGraphComponent graphComponent = new mxGraphComponent(graph);
        jLabel1.add(graphComponent);
    }
}

最佳答案

JPanel 应该可以工作,或者直接将其添加到 JFrame 中即可。

编辑 - 下面的代码对我来说显示了很好的图表。

import javax.swing.JFrame;

import com.mxgraph.swing.mxGraphComponent;
import com.mxgraph.view.mxGraph;

public class GraphFrame extends JFrame {
    public static void main(String[] args) {
        mxGraph graph = new mxGraph();
        Object parent = graph.getDefaultParent();
        graph.getModel().beginUpdate();
        try {
            Object v1 = graph.insertVertex(parent, null, "Hello", 20, 20, 80,
                    30);
            Object v2 = graph.insertVertex(parent, null, "World!", 240, 150,
                    80, 30);
            graph.insertEdge(parent, null, "Edge", v1, v2);
        } finally {
            graph.getModel().endUpdate();
        }
        mxGraphComponent graphComponent = new mxGraphComponent(graph);

        GraphFrame frame = new GraphFrame();
        frame.add(graphComponent);
        frame.pack();
        frame.setVisible(true);
    }
}

关于java - 如何最好地显示 JGraphX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3925103/

相关文章:

c++ - 传递不同数据类型的问题

java - 这个 JLabel 上的什么是无效的?

java - 从文件系统和 jar 内部读取相同的文件得到不同的结果

java - 转置图

java - 我怎样才能让这个timer()按我想要的方式工作?

graph - Tensorflow图: Are Tensorflow graphs DAG?张量变量中的assignAdd操作会发生什么

java - 在 swing 中设置 jLabel 的大小

java - 使用 JPanel 的 Y_AXIS 约束将 JLabel 与 BoxLayout 内的左或右对齐

java - 为什么提交失败后要回滚

java - .forward(req, resp) 之后的 HttpServletRequest 有什么问题?