Java Swing - Фон JPanel - PullRequest
       12

Java Swing - Фон JPanel

0 голосов
/ 11 марта 2010

Я хочу создать JPanel, который должен иметь цветовую кодировку, как показано на следующей диаграмме:


(источник: compendiumblog.com )

Как я могу кодировать цвета JPanel. Я думаю, что добавить 5 JPanel с (для 5 блоков, показанных выше) на основной JPanel. Установите background каждой JPanel на light Gray.

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

Любые советы или предложения?

Ответы [ 2 ]

3 голосов
/ 11 марта 2010

Попробуйте использовать JTable и затем чередовать цвета строки. Таким образом, вы можете написать общий JComponent (AlternatingColorTable) и использовать его так же, как обычный JTable в этих 4 панелях.

Примерно так:

public class AlternatingColorTable extends JTable {

public AlternatingColorTable () {
    super();
}

public AlternatingColorTable(TableModel tableModel) {
    super(tableModel);
}

/** Extends the renderer to alternate row colors */
public Component prepareRenderer(TableCellRenderer renderer, int row, int col) {
    Component returnComp = super.prepareRenderer(renderer, row, col);

    Color alternateColor = Color.GRAY;
    Color mainColor = Color.DARK_GRAY;

    if (!returnComp.getBackground().equals(getSelectionBackground())) {
        Color background = (row % 2 == 0 ? alternateColor : mainColor );
        returnComp.setBackground(background);
        background = null;
    }
    return returnComp;
}

}

0 голосов
/ 11 марта 2010

Просто сделайте каждую из цветных полосок панелями с другим цветом фона. Не забудьте сделать панели явно непрозрачными с помощью setOpaque (true) - панели прозрачны по умолчанию, прозрачны в большинстве случаев

записка об эстетике; Я бы начал с первой строки в каждой группе, заштрихованной по-разному.

...