Java Swing - JPanel的背景

时间:2010-03-11 06:55:25

标签: java swing jpanel

我想设计一个JPanel,它应该有颜色编码,如下图所示:

http://local.content.compendiumblog.com/uploads/user/b8bbc9ab-67b1-4a8e-ac5c-5811daa967bd/ec324f27-588d-454b-a857-82d79d6acad6/survey-template.gif

如何编码JPanel的颜色。我认为在主JPanel上添加5 JPanel s(上面显示的5个块)。将每个JPanel的background设置为light Gray

但是如何才能实现如图所示的深色线。

任何提示或建议?

2 个答案:

答案 0 :(得分:3)

尝试使用JTable然后交替行的颜色。通过这种方式,您可以编写一个通用的JComponent(AlternatingColorTable),并像在这4个面板中的常规JTable一样使用它。

这样的事情可能是:

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;
}

}

答案 1 :(得分:0)

只需使用不同的背景颜色制作每个彩色条本身的面板。不要忘记使用setOpaque(true)使面板显式不透明 - 面板在大多数外观中默认是透明的。

关于美学的说明;我会从每组不同阴影的第一行开始。