- Undocumented Matlab - https://undocumentedmatlab.com -
Javacomponent background color
Posted By Yair Altman On October 12, 2011 | 3 Comments
In this website, I have often shown how Matlab application functionality can be significantly enhanced by including Java components in the Matlab GUI, using the built-in semi-documented javacomponent function (which I described here [1] last year).
Using java components in Matlab is simple and easy, but there are a few annoying catches. One of these is the fact that the default Matlab figure background color ([0.8, 0.8, 0.8]) is a different shade of gray than the default uicontrol background color ([0.9255, 0.9137, 0.847]). javacomponents use the same background color as uicontrols.
hPanel = uipanel('units','pixe', 'pos',[30,30,200,100], 'title','Matlab uipanel');
jLabel = javax.swing.JLabel('Java Label');
[jhlabel,jContainer]=javacomponent(jLabel, [250,50,100,50], gcf);
% Fix the Java component:
% Variant #1
bgcolor = get(gcf, 'Color');
jLabel.setBackground(java.awt.Color(bgcolor(1),bgcolor(2),bgcolor(3)));
% Variant #2
bgcolor = num2cell(get(gcf, 'Color'));
jLabel.setBackground(java.awt.Color(bgcolor{:}));
% Fix the Matlab panel uicontrol
set(hPanel, 'BackgroundColor', get(gcf,'Color'));
bgcolor = jLabel.getBackground.getComponents([]);
set(gcf, 'Color', bgcolor(1:3));
Categories: GUI, Java, Low risk of breaking in future versions, Semi-documented function, Undocumented feature
Article printed from Undocumented Matlab: https://undocumentedmatlab.com
URL to article: https://undocumentedmatlab.com/articles/javacomponent-background-color
URLs in this post:
[1] described here: http://undocumentedmatlab.com/blog/javacomponent/
[2] Customizing figure toolbar background : https://undocumentedmatlab.com/articles/customizing-figure-toolbar-background
[3] The javacomponent function : https://undocumentedmatlab.com/articles/javacomponent
[4] Common javacomponent problems : https://undocumentedmatlab.com/articles/common-javacomponent-problems
[5] Color selection components : https://undocumentedmatlab.com/articles/color-selection-components
[6] Bold color text in the Command Window : https://undocumentedmatlab.com/articles/bold-color-text-in-the-command-window
[7] cprintf – display formatted color text in the Command Window : https://undocumentedmatlab.com/articles/cprintf-display-formatted-color-text-in-command-window
[8] : https://undocumentedmatlab.com/blog/panel-level-uicontrols/
Click here to print.
Copyright © Yair Altman - Undocumented Matlab. All rights reserved.
3 Comments To "Javacomponent background color"
#1 Comment By Panos On November 9, 2011 @ 17:49
hello,
(How) is it possible to place the panel label(name) someplace else than the top of it?
thanks in advance
#2 Comment By Yair Altman On November 10, 2011 @ 10:15
@Panos – you can easily get the handle of the panel label and then modify its Position property, as well as other aspects: color, font, and even component style, as described here: [8]
#3 Comment By Peng Liu On July 19, 2019 @ 11:07
Hello Yair,
is it possible to set transparency of javacomponents backgroud color? I tried setBackground(java.awt.Color(1, 0.98, 0.94, 0.5)) of my Spinning icon which I learned from your article as well. Here 0.5 defines the Alpha. But only at start and at end the transparency works. While the Spinning Icon runs, it doesn’t works. May you have some idea or Solutions?