我有一个带有一些文本的JRadioButton,包含html代码.当我将其设置为禁用时,文本颜色不会更改为灰色或其他内容.如何将其设置为默认禁用的组件文本颜色?我可以直接在文本中设置文字颜色,如:
<html><font color=someColor>...
Run Code Online (Sandbox Code Playgroud)
但是如何获取禁用的组件文本的默认颜色?此外,我试图覆盖绘制方法,并使用这样的东西:
Graphics2D g2 = (Graphics2D) g.create();
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.35f));
super.paintComponent(g2);
g2.dispose();
Run Code Online (Sandbox Code Playgroud)
但我没有得到预期的结果 - 它变成灰色,但与默认禁用的组件文本颜色不同.
因此,解决方案可能是从UIManager.getColor("ComboBox.disabledForeground")获取禁用的颜色; 导致此属性在所有Os中可用.以下是代码:
import javax.swing.*;
import java.awt.*;
public class HTMLJRadio extends JRadioButton {
static String prefixEnabled = "<html><body style='color: black;'>";
String text;
String prefixDisabled;
HTMLJRadio(String text) {
super(prefixEnabled + text);
this.text = text;
Color c = UIManager.getColor("ComboBox.disabledForeground");
String color = Integer.toHexString(c.getRed()) +
Integer.toHexString(c.getGreen()) +
Integer.toHexString(c.getBlue());
prefixDisabled = "<html><body style='color: #" + color + ";'>";
}
public void setEnabled(boolean enabled) {
super.setEnabled(enabled);
if (enabled) {
setText(prefixEnabled …Run Code Online (Sandbox Code Playgroud) 我需要一些自动循环滚动(字幕文本)它的内容JPanel.内容必须在鼠标点击不同元素时作出反应.因此,只需绘制移动坐标不能在此处工作的内容,因为元素的实际位置不会改变.它也必须能够更新.最有可能的是它将是平滑更新 - 没有任何弹跳.试图使用JScrollPane没有可见的滚动和自动滚动,它可以保持动作侦听器,但我不能使它顺利循环和平滑更新内容.
更新它应该是这样的:
http://h1.flashvortex.com/display.php?id=2_1311593920_25605_144_0_700_30_6_1_92
但是从代码修改内容,而不停止动画和弹跳.
我有java swing chess应用程序.游标具有自定义视图 - 矩形,大小适合整个单元格.我需要光标只在整个单元格上移动.不在一个细胞的范围内.这个问题有一些典型的解决方案吗?或者也许可以设置标准的java功能步进式光标移动?
