Notez que pour certains aspects esthétiques et fonctionnels comme Nimbus qui ne respectent pas la propriété d'arrière-plan, vous pouvez utiliser ce code:
private static class Painter extends javax.swing.plaf.nimbus.AbstractRegionPainter {
private final Color color;
private Painter(Color color) {
this.color = color;
}
@Override
protected AbstractRegionPainter.PaintContext getPaintContext() {
return new AbstractRegionPainter.PaintContext(null, null, false);
}
@Override
protected void doPaint(Graphics2D g, JComponent c,
int width, int height, Object[] extendedCacheKeys) {
g.setColor(c.isEnabled() ? c.getBackground() : color);
g.fillRect(0, 0, width, height);
}
}
Ceci définit un nouveau peintre personnalisé pour l'arrière-plan. Pour Nimbus, l'appliquer à votre JTextPane jtp
cette façon:
UIDefaults defaults = UIManager.getLookAndFeelDefaults();
Painter painter = new Painter(color);
String key = "TextPane[Disabled].backgroundPainter";
defaults.put(key, painter);
jtp.putClientProperty("Nimbus.Overrides", defaults);
jtp.putClientProperty("Nimbus.Overrides.InheritDefaults", false);
Pouvez-vous s'il vous plaît poster un [Runnable Exemple] (http://stackoverflow.com/help/mcve) que nous pouvons copier-coller et voir le même question comme vous? – Frakcool
Je suggère de vérifier [this] (https://community.oracle.com/thread/1480217?start=0&tstart=0) lien. J'espère qu'il répondra à votre question – Jonah
@Frakcool merci, j'ai commencé à écrire un exemple Runnable et j'ai trouvé la réponse au problème en le faisant. J'avais 'pane.setOpaque (false)' qui m'empêchait de changer toutes les couleurs sur le volet. Merci pour l'aide. Désolé, j'apprends encore beaucoup sur Java! – blueprintChris