当前位置: 首页 > 面试题库 >

更改JUNG中顶点的大小/颜色

焦光霁
2023-03-14
问题内容

如何在Jung Visualization Library中更改特定顶点的大小?

我正在阅读文档,但对Java并不十分熟悉,也找不到在线的任何示例。


问题答案:

我花了一段时间,但这是一个可读的,经过注释的程序,它可以更改图形的顶点大小和颜色。请享用!

public class SimpleGraphView {
    public SimpleGraphView() {
        // Create a graph with Integer vertices and String edges
        Graph<Integer, String> g = new SparseGraph<Integer, String>();
        for(int i = 0; i < 5; i++) g.addVertex(i);
        g.addEdge("Edge", 1, 2);
        g.addEdge("Another Edge", 1, 4);

        // Layout implements the graph drawing logic
        Layout<Integer, String> layout = new CircleLayout<Integer, String>(g);
        layout.setSize(new Dimension(300,300));

        // VisualizationServer actually displays the graph
        BasicVisualizationServer<Integer,String> vv = new BasicVisualizationServer<Integer,String>(layout);
        vv.setPreferredSize(new Dimension(350,350)); //Sets the viewing area size

        // Transformer maps the vertex number to a vertex property
        Transformer<Integer,Paint> vertexColor = new Transformer<Integer,Paint>() {
            public Paint transform(Integer i) {
                if(i == 1) return Color.GREEN;
                return Color.RED;
            }
        };
        Transformer<Integer,Shape> vertexSize = new Transformer<Integer,Shape>(){
            public Shape transform(Integer i){
                Ellipse2D circle = new Ellipse2D.Double(-15, -15, 30, 30);
                // in this case, the vertex is twice as large
                if(i == 2) return AffineTransform.getScaleInstance(2, 2).createTransformedShape(circle);
                else return circle;
            }
        };
        vv.getRenderContext().setVertexFillPaintTransformer(vertexColor);
        vv.getRenderContext().setVertexShapeTransformer(vertexSize);

        JFrame frame = new JFrame("Simple Graph View");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(vv); 
        frame.pack();
        frame.setVisible(true);    
    }

    public static void main(String[] args) {
        new SimpleGraphView();
    }
}


 类似资料:
  • 本文向大家介绍如何更改placeholder的字体颜色和大小?相关面试题,主要包含被问及如何更改placeholder的字体颜色和大小?时的应答技巧和注意事项,需要的朋友参考一下

  • 问题内容: 有没有办法在matplotlib中更改图的颜色? 默认颜色是这种“棕色”颜色,虽然还不错,但我想对前3个小提琴进行不同的着色,以突出显示它们。我在文档中找不到任何参数。有什么想法或技巧可以使小提琴颜色不同吗? 问题答案: 说它返回: 字典,将小提琴的每个组成部分映射到创建的相应集合实例的列表。该词典具有以下键: :包含每个小提琴填充区域的实例列表。 […以及其他…] 方法小号包括: 设

  • 2.1节~2.4节通过缓冲类型几何体BufferGeometry给大家讲解了顶点位置、颜色、法向量、索引数据,本节课给大家引入一个新的threejs几何体APIGeometry。几何体Geometry和缓冲类型几何体BufferGeometry表达的含义相同,只是对象的结构不同,Threejs渲染的时候会先把Geometry转化为BufferGeometry再解析几何体顶点数据进行渲染。 Vect

  • 除了这个问题:更改超文本标记语言电子邮件正文字体类型和大小在VBA,我想知道如何才能改变字体大小 当我从代码中删除字体大小时,它确实改变了字体系列。 谢谢你的协助,

  • 我正在用libgdx写一个游戏,我借用了这个皮肤。来自教程的json(和相关文件)。 正在使用的字体(默认)在更密集的屏幕上以一种丑陋的方式缩放,因此我使用自己的超大字体生成-在游戏本身中,我将其缩放到一个合理的大小(基本上我使用)。我现在使用的字体是前一种字体的3倍大。 我更改了在皮肤中使用哪个字体的参考。json文件,因此,我所有的按钮、标题和其他东西都有一个巨大的字体显示。 有办法缩放. j

  • 问题内容: 我正在使用一个返回json的Web服务,并将json存储在本地变量中。json代表一个简单的业务对象,例如: 大小写是这样的,因为按照我们的命名约定,它与.net类的属性名称匹配。 当更改其中一些属性并传递回json时,Web服务现在期望使用驼峰式(再次,按照我们对方法参数的命名约定),而不是最初返回的pascal式。 这当然是行不通的。 我用来将json作为字符串发送回Web服务,并