2013-08-30 4 views
0

Я создал программу, которая обрабатывает результаты некоторых запросов SPARQL через Jena и сохраняет их в двумерной строке (т. Е. Двумерном массиве строк). Я хочу взять только значения первого столбца и составить схему блоков, где каждый блок содержит каждое значение первого столбца и последовательно связывает их друг с другом.От строкового массива до диаграммы блоков

Из того, что я прочитал, JGraph, кажется, очень полезен для этого, но я загрузил его и попытался сделать это, но я потерпел неудачу.

Как я могу это сделать с помощью JGraph, или есть другие способы?

something like this

+0

Является ли элемент 1 всегда подключенным к элементу 2 и т. Д., Или это порядок строковых результатов зависит от значений строк? –

+0

elemnt 1 всегда подключен к элементу 2. @ GilbertLeBlanc – user2598911

ответ

1

Вот метод, который я поставил вместе, который будет рисовать прямоугольник, залейте его цветом, и поместить строку в центре прямоугольника.

/** 
* <p>This method will draw a rectangle and place the text in the center 
* of the rectangle.</p> 
* @param g - Graphics instance from a JPanel paintComponent method 
* @param r - Rectangle (origin and dimension) of the rectangle. 
* @param c - Fill color of the rectangle. 
* @param s - String to place at the center of the rectangle. 
*/ 
public void drawBox(Graphics g, Rectangle r, Color c, String s) { 
    g.setColor(c); 
    g.fillRect(r.x, r.y, r.width, r.height); 

    Graphics2D g2d = (Graphics2D) g; 
    FontRenderContext frc = g2d.getFontRenderContext(); 
    TextLayout layout = new TextLayout(s, g.getFont(), frc); 
    Rectangle2D bounds = layout.getBounds(); 

    int width = (int) Math.round(bounds.getWidth()); 
    int height = (int) Math.round(bounds.getHeight()); 
    int x = r.x + (r.width - width)/2; 
    int y = r.y + height + (r.height - height)/2; 

    g.setColor(Color.BLACK); 
    layout.draw(g2d, (float) x, (float) y); 
} 

Вам нужно будет выяснить, где вы хотите прямоугольники и как их подключить с тонкими прямоугольниками.