के साथ जंग रंगीन वर्टेक्स मैं जावा लाइब्रेरी जंग के साथ इस समय अटक गया हूं।मूल्य
मैं वर्टिसेस और किनारों को प्रदर्शित करता हूं, केवल मुझे वर्टेक्स रंग के लिए कोई फ़ंक्शन नहीं मिल रहा है जिसे मुझे शिखर के मान के साथ चाहिए और माउस के साथ नहीं।
import edu.uci.ics.jung.algorithms.layout.FRLayout;
import edu.uci.ics.jung.algorithms.layout.Layout;
import edu.uci.ics.jung.graph.Graph;
import edu.uci.ics.jung.visualization.BasicVisualizationServer;
import edu.uci.ics.jung.visualization.decorators.PickableVertexPaintTransformer;
import edu.uci.ics.jung.visualization.decorators.ToStringLabeller;
import edu.uci.ics.jung.visualization.renderers.DefaultVertexLabelRenderer;
import edu.uci.ics.jung.visualization.renderers.Renderer.VertexLabel.Position;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import org.apache.commons.collections15.Transformer;
import org.apache.commons.collections15.functors.ConstantTransformer;
public class Design {
public Graph<String, Integer> g;
public Design() {
this.g = ProjectTools.readNet("SmallTown.net");
}
public static <Paint> void main(String[] args) {
Design sgv = new Design();
Layout<Integer, String> layout = new FRLayout(sgv.g);
layout.setSize(new Dimension(800,800));
BasicVisualizationServer<Integer, String> vv =
new BasicVisualizationServer<Integer, String>(layout);
Transformer<Integer,Paint> vertexPaint = new Transformer<Integer,Paint>() {
public Paint transform(Integer i) {
return (Paint) Color.GREEN;
}
};
vv.setPreferredSize(new Dimension(850,850));
vv.getRenderContext().setVertexLabelRenderer(new DefaultVertexLabelRenderer(Color.green));
vv.getRenderContext().setEdgeDrawPaintTransformer(new ConstantTransformer(Color.white));
vv.getRenderContext().setEdgeStrokeTransformer(new ConstantTransformer(new BasicStroke(2.5f)));
vv.getRenderContext().setVertexFillPaintTransformer((Transformer<Integer, java.awt.Paint>) vertexPaint);
vv.getRenderContext().setVertexFillPaintTransformer(new PickableVertexPaintTransformer<Integer>(vv.getPickedVertexState(), Color.green, Color.yellow));
vv.setBackground(Color.gray);
vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller<Integer>());
vv.getRenderer().getVertexLabelRenderer().setPosition(Position.CNTR);
JFrame frame = new JFrame("Projet Algo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(vv);
frame.pack();
frame.setVisible(true);
}
}
मेरे प्रतिपादन:
अपने उत्तर के लिए धन्यवाद
VertexPaintTransformer#transform()
संशोधित कर सकते हैं, लेकिन अपने कोड मेरी विन्यास के लिए कार्य नहीं करता। मैं अंक रंग के लिए अपने माउस का उपयोग नहीं करना चाहता। मैं अपने कोड में सीधे रंग में अंक जोड़ना चाहता हूं। – Daleksek@Daleksek "मैं अपने माउस का उपयोग बिंदुओं को रंगने के लिए नहीं करना चाहता" लेकिन आप जहां 'पिकेबल वेरटेक्स पेंटट्रांसफॉर्मर' का उपयोग करते हैं, जिसका अर्थ है कि आप शिखर चुनना चाहते हैं। फिर भी आप माउस का उपयोग किए बिना 'VertexPaintTransformer # transform()' के कार्यान्वयन को अपनी आवश्यकताओं के अनुसार बदल सकते हैं। आप कोड का प्रयास क्यों करते हैं और देखते हैं कि यह क्या करता है, आपको वैकल्पिक हरे और लाल शिखर प्राप्त करना चाहिए। – GrahamA