gpt4 book ai didi

java - 如何在已创建的 JTable 中交替行颜色?

转载 作者:行者123 更新时间:2023-11-30 10:58:25 25 4
gpt4 key购买 nike

我知道如何使用此代码交替行颜色:

JTable table = new JTable(){
public Component prepareRenderer(TableCellRenderer renderer, int row, int column){
Component returnComp = super.prepareRenderer(renderer, row, column);
Color alternateColor = Color.YELLOW;
Color whiteColor = Color.WHITE;
if (!returnComp.getBackground().equals(getSelectionBackground())){
Color bg = (row % 2 == 0 ? alternateColor : whiteColor);
returnComp .setBackground(bg);
bg = null;
}
return returnComp;
};

现在我想在执行时更改交替行颜色(例如,单击按钮并将交替行颜色从黄色更改为灰色)。

我该怎么做?

最佳答案

使您的 JTable 成为一个完整的类(而不是您在问题中使用的匿名类),然后创建一个方法来进行切换。

public class AlternatingJTable extends JTable {
private static final Color ALTERNATE_ONE = Color.YELLOW;
private static final Color ALTERNATE_TWO = Color.GRAY;

private Color alternateColor = ALTERNATE_ONE;
private Color whiteColor = Color.WHITE;

@Override
public Component prepareRenderer(TableCellRenderer renderer, int row, int column){
Component returnComp = super.prepareRenderer(renderer, row, column);

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

public void toggleAlternateColor() {
if(this.alternateColor == ALTERNATE_ONE) {
this.alternateColor = ALTERNATE_TWO;
} else {
this.alternateColor = ALTERNATE_ONE;
}
}
}

然后,在您的actionListener 中,执行

public void actionPerformed(ActionEvent e) { 
myAlternatingJTable.toggleAlternateColor();
}

关于java - 如何在已创建的 JTable 中交替行颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32275869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com