2017-11-09 17 views
1

が、私たちは、以下の方法により、グラフのスタイルを設定できることが記載されている:ひどい文字列/絶対ファイルパスのないGraphStreamスタイリング? GraphStreamのドキュメントで

この属性は、グラフ上に保存され、文字列として値として スタイルシート自体のいずれかになりますしなければなりませんまたはファイルのURL、 ローカル、遠方、または瓶にパッケージ化されています。

あなたは、例えば、文字列として、このように所定の スタイルシートを使用して、グラフの背景色を変更することができる:

graph.addAttribute(「ui.stylesheet」、「グラフ{塗りつぶし色を赤。 } ");

しかし、あなたはまた、URLを指定することができます。

graph.addAttribute( "ui.stylehseet"、 "のURL( 'http://www.deep.in/the/site/mystylesheet')");

または:

graph.addAttribute( "ui.stylesheet"、 "URL(ファイル:///どこかに/オーバー/ /虹/スタイルシート ')");

しかし、私はこれを実験して、この属性の絶対ファイルパスのみをサポートしているという結論に達しました。これは私が最終的にJARファイルとしてアプリケーションをエクスポートされますので、問題である、と私はあなたのような何かをすることによって、問題を回避できることを発見したものの:

この方法に関連した不確実性がある
ClassLoader.getSystemClassLoader().getResource(".").getPath(‌​); 

(すなわち、それをLinuxマシン(?)などの特定のマシンでは動作しない可能性があります)。その場合には

、私の現在のハックは、長い文字列、このようなものとして、「スタイルシート」を格納することです:率直に言って非常に見苦しいです

private static final String GRAPH_DISPLAY_STYLESHEET = 
    "graph { fill-color: white; }" + 
      "node {" + 
       "fill-color: black;" + 
       "shape: rounded-box;" + 
       "shadow-mode: plain;" + 
       "shadow-color: #C8C8C8;" + 
       "shadow-width: 4;" + 
       "shadow-offset: 4, -4;" + 
       "text-background-mode: rounded-box;" + 
       "text-padding: 5;" + 
       "text-background-color: black;" + 
       "text-color: white;" + 
       "text-size: 20;" + 
       "size-mode: fit;}" + 
      "edge { fill-color: black; }"; 

誰もこの状況を改善する方法について考えていますか?前もって感謝します!

答えて

1

getResource()を使用する方法があります。ファイルシステムの気まぐれを避けるために、これらのいずれかの方法を試してみてください。

  • 利用アプローチの一つは、addAttribute()に適しStringに各リソースを変換するhereをadduced。 herehereを示すように、各スタイルがaddAttribute()に適しStringとして利用可能であるように

  • は、あなたのスタイルでjava.util.Propertiesのインスタンスをロードします。

関連する問題