我有这个课:
@SuppressWarnings("serial")
private class DataCellRenderer extends JLabel implements ListCellRenderer
{
public DataCellRenderer()
{
setHorizontalAlignment(SwingConstants.RIGHT);
}
@Override
public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus)
{
if(isSelected)
setBackground(Color.red);
setText(" " + value.toString());
return this;
}
}
问题是当我在JList中选择一个单元格时,我的背景不会变成红色。setText部分有效,但是我无法弄清楚为什么它不会更改单元格的背景颜色。任何人都有任何想法,谢谢!
主要问题是标签默认情况下是不透明的,因此您需要使标签不透明才能绘制背景。
但是您不需要为此创建自定义渲染器。默认渲染器是不透明的。您所需要做的就是设置列表的选择背景属性:
list.setSelectionBackground(Color.RED);
如果您尝试创建一个渲染器以使文本右对齐,则只需在默认渲染器上设置一个属性即可:
DefaultListCellRenderer renderer = (DefaultListCellRenderer)list.getCellRenderer();
renderer.setHorizontalAlignment(SwingConstants.RIGHT);
我有一个自定义列表视图的应用程序,它有一个textview和一个imageview。当我点击图像视图时,背景颜色应该改变。我试图这样做,但是得到了。。。这是我的密码 CustomListViewAdapter。JAVA 任何建议都将不胜感激。谢谢
我有一个具有自定义列表视图的应用程序,它具有文本视图和图像(删除),当我单击图像时,该行的背景颜色应更改,当我再次单击相同的图像时,其背景应更改为默认颜色。我可以改变背景颜色,但只有一次,我不能改变它两次,我的意思是我不能恢复到它的默认颜色。 这是我的密码。。。 CustomListView.java 还有一个问题是,背景色不是我在《颜色》中提到的颜色。xml,我通过放置不同的颜色进行了测试,但是
更新问题 第1部分:最初,我首先要在选择一个项目后删除高亮选择(因为这会扰乱所做选择的背景色)。我看到这可以从这里完成>JComboBox中的删除高亮显示-(解决) 第二部分:现在...我试图让它识别选定的文本,并根据选定的文本改变背景色(当选定时,而不是当鼠标悬停在列表中的项上时)。它确实会改变颜色以匹配文本,但是当选择另一个对象(取消选择组合框)时,背景颜色会变回默认-(已解决-参见我的解决方
我想通过主题改变整个应用程序的背景色。这是我的努力,但没有成功: res/值/样式。xml 显示xml 我已经在Android4.4和5.0上试过了。我做错了什么?有什么建议吗?
问题内容: 因此,我看到我们可以使用具有灰色和白色(当setinverse …时)背景色的Alertdialog。 要了解为什么我检查了sdk的themes.xml,检查了它是否导致了可绘制对象,并且在那里我意识到alertdialog背景不是以编程方式完成的,而是通过一些图像完成的。这些图像保证了当我们使用LayoutInflater设置不同的背景色时,对话框的顶部(标题区域)和底部(按钮区域上
我有一个带有半径和笔划的CardView,但当我以编程方式更改CardView背景时,半径和笔划将丢失,我希望新颜色保留在笔划内。 这是我的cardview xml 这里是我换颜色的地方: