J'ai essayé: ne fonctionne pas. p> EDIT: Ce code ne fonctionne pas dans mon projet uniquement. Travaille dans d'autres projets. J'ai peut-être modifié une propriété qui arrête la couleur de changer. Ou peut-être que NetBeans a des biens qui conservent les couleurs par défaut. J'ai remarqué autre chose. La couleur de l'en-tête de mon projet brille d'une manière différente. Dans les exemples où le changement de couleur fonctionne, je vois différents graphiques. P> Editer 2: quelque chose d'autre. J'ai remarqué que les boutons ne changent pas de couleur non plus. Doit être quelque chose de générique. J'espère que cela t'aides. Malheureusement, la SSCCE ne fonctionnera pas dans ce cas, car je ne peux pas recréer le problème. J'utilise sûrement les noms de composants de droite. P> p>
6 Réponses :
Cela fonctionne pour moi. Voici mon SSCCE :
import java.awt.*; import javax.swing.*; import javax.swing.table.*; public class TableHeaderBackground { public static void main(String[] args) { Integer[][] data = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; String[] cols = {"A", "B", "C"}; JTable table = new JTable(data, cols); JTableHeader header = table.getTableHeader(); header.setBackground(Color.black); header.setForeground(Color.yellow); JOptionPane.showMessageDialog(null, new JScrollPane(table)); } }
ça marche en effet. Pour ma table si cela ne fonctionne pas. Voir Modifier.
résolu. Dans NetBeans: P>
Les graphiques de l'ensemble du projet ont changé l'apparence. P>
Il semble que cette option ne soit disponible que pour les projets NetBeans de type application Java Desktop Code>
. Envisagez de mettre à jour la question pour inclure le tag JSR296 .
Je pense toujours que cela peut être résolu dans le code, que vous ne pouvez pas définir la propriété pour la référence correcte.
Je vous suggère de jar votre projet avec code source i> et de le télécharger quelque part, puis laissez-nous regarder.
Merci. Je déteste quand les paramètres NetBeans écrasent mes changements explicites comme celui-ci. PS, j'ai le même comportement que OP et je ne pense pas que ce soit son code. C'est que NetBeans GUIDER définit des propriétés de l'interface utilisateur dans plusieurs endroits de votre codeBase. Si vous utilisez le constructeur de l'interface graphique, ceux-ci seront assez fragmentés, il est donc difficile de le copier et de la coller dans quelque chose de tractablir.
L'en-tête de la table utilise également un composant de rendu, comme des cellules de table.
Regardez ceci: p> p> Si vous n'avez pas besoin d'une couleur dynamique, vous pouvez également définir la couleur dans le constructeur du rendu. p> p>
Je vous recommande de faire cela:
DefaultTableCellRenderer headerRenderer = new DefaultTableCellRenderer(); headerRenderer.setBackground(new Color(239, 198, 46)); for (int i = 0; i < myJTable.getModel().getColumnCount(); i++) { myJTable.getColumnModel().getColumn(i).setHeaderRenderer(headerRenderer); }
Essayez ceci: puis réglez l'arrière-plan de jtalle code> en-tête p>
Cette question est vieille mais j'ai la bonne réponse, je suppose ...
Tout ce que vous avez à faire est défini opaque à J'espère que cela peut aider quelqu'un à l'avenir. p> p> vrai code>. p>
Voir aussi Comment puis-je mettre un contrôle Dans le JTableheader d'une JTABLE? .
Cela n'a rien à voir avec des NetBeans de garder une couleur par défaut et de tout faire avec un bogue dans votre code, mais avec juste la déclaration "Ce code ne fonctionne pas dans mon projet uniquement", et sans aucun code, de préférence un SSCCE, je Doutez que l'un de nous peut vous donner plus d'aide autrement que de vous suggérer d'essayer de déboguer un peu plus profondément. Peut-être que la table que vous essayez de changer la couleur d'en-tête n'est-elle pas le même objet de la table qui est affiché, mais à nouveau sans compréhension de code compilable et de préférence compilable, il s'agit d'un swag de ma part?
Pour modifier la couleur par défaut:
uimanager.put ("tableheader.background", couleur.orange); code>.