<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: Faster findjobj	</title>
	<atom:link href="https://undocumentedmatlab.com/articles/faster-findjobj/feed" rel="self" type="application/rss+xml" />
	<link>https://undocumentedmatlab.com/articles/faster-findjobj?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=faster-findjobj</link>
	<description>Professional Matlab consulting, development and training</description>
	<lastBuildDate>Fri, 02 Jun 2017 20:25:53 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.3</generator>
	<item>
		<title>
		By: claudio		</title>
		<link>https://undocumentedmatlab.com/articles/faster-findjobj#comment-407824</link>

		<dc:creator><![CDATA[claudio]]></dc:creator>
		<pubDate>Fri, 02 Jun 2017 20:25:53 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6376#comment-407824</guid>

					<description><![CDATA[Hi Yair,

thanks a lot for your work! 
I built a figure with some tabs. in one specific tab i set another small uitabgroup (and tabs) to show some tables. 
I can&#039;t take the uitabgroup handle from command  window (empty value is returned) but I can see the &quot;object&quot; and 
modify all his properties from findjobj window. 
what is the problem? how can I continue to use findjobj from command window also in this case?

best regards
 claudio]]></description>
			<content:encoded><![CDATA[<p>Hi Yair,</p>
<p>thanks a lot for your work!<br />
I built a figure with some tabs. in one specific tab i set another small uitabgroup (and tabs) to show some tables.<br />
I can&#8217;t take the uitabgroup handle from command  window (empty value is returned) but I can see the &#8220;object&#8221; and<br />
modify all his properties from findjobj window.<br />
what is the problem? how can I continue to use findjobj from command window also in this case?</p>
<p>best regards<br />
 claudio</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Malcolm Lidierth		</title>
		<link>https://undocumentedmatlab.com/articles/faster-findjobj#comment-389307</link>

		<dc:creator><![CDATA[Malcolm Lidierth]]></dc:creator>
		<pubDate>Mon, 26 Sep 2016 23:55:40 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6376#comment-389307</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/faster-findjobj#comment-389292&quot;&gt;Meade&lt;/a&gt;.

@Meade

You can call jscroll methods in the EDT if you can get a reference to it and call javaObjectEDT on the reference:
&lt;pre lang=&#039;matlab&#039;&gt;
jscroll=javaObjectEDT(jscroll)
&lt;/pre&gt;

If you have problems after a javaObjectEDT you might try
&lt;pre lang=&#039;matlab&#039;&gt;
jscroll.revalidate();% Does layout
jscroll.repaint();% Paints component
drawnow()
&lt;/pre&gt;
Revalidate and repaint are both thread-safe and will be run on the EDT by Swing.

I am on a Mac and all seems to work fine without tweaks (and the same with the latest or older findjobj) so I can&#039;t be much help but here&#039;s what I see anyway:

&lt;pre lang=&#039;matlab&#039;&gt;
&#062;&#062; info = uitable(&#039;Parent&#039;,figure,...
    &#039;Data&#039;,cell(5,1),...
    &#039;ColumnName&#039;, [],...
    &#039;RowName&#039;,{&#039;1&#039;, &#039;2&#039;, &#039;3&#039;,&#039;4&#039;,&#039;5&#039;},...
    &#039;RowStriping&#039;,&#039;off&#039;,...
    &#039;ColumnWidth&#039;, {397},...
    &#039;ColumnEditable&#039;, false,...
    &#039;Position&#039;,[30, 10, 500, 140 ],...
    &#039;FontSize&#039;,10,...
    &#039;BackgroundColor&#039;,[0.94 0.94 0.94],...
    &#039;Tag&#039;,&#039;hInfoTable&#039;);
&#062;&#062; jscroll=findjobj(info)

jscroll =javahandle_withcallbacks.com.mathworks.hg.peer.utils.UIScrollPane
&lt;/pre&gt;

All seems OK to me:
&lt;pre lang=&#039;matlab&#039;&gt;
&#062;&#062; jscroll.getComponents()

ans =

  java.awt.Component[]:

    [1×1 javax.swing.JViewport                     ]
    [1×1 com.mathworks.hg.peer.utils.UIScrollPane$1]
    [1×1 com.mathworks.hg.peer.utils.UIScrollPane$2]
    [1×1 javax.swing.JViewport                     ]
    [1×1 javax.swing.JViewport                     ]
    [1×1 javax.swing.JList                         ]
&lt;/pre&gt;]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/faster-findjobj#comment-389292">Meade</a>.</p>
<p>@Meade</p>
<p>You can call jscroll methods in the EDT if you can get a reference to it and call javaObjectEDT on the reference:</p>
<pre lang='matlab'>
jscroll=javaObjectEDT(jscroll)
</pre>
<p>If you have problems after a javaObjectEDT you might try</p>
<pre lang='matlab'>
jscroll.revalidate();% Does layout
jscroll.repaint();% Paints component
drawnow()
</pre>
<p>Revalidate and repaint are both thread-safe and will be run on the EDT by Swing.</p>
<p>I am on a Mac and all seems to work fine without tweaks (and the same with the latest or older findjobj) so I can&#8217;t be much help but here&#8217;s what I see anyway:</p>
<pre lang='matlab'>
&gt;&gt; info = uitable('Parent',figure,...
    'Data',cell(5,1),...
    'ColumnName', [],...
    'RowName',{'1', '2', '3','4','5'},...
    'RowStriping','off',...
    'ColumnWidth', {397},...
    'ColumnEditable', false,...
    'Position',[30, 10, 500, 140 ],...
    'FontSize',10,...
    'BackgroundColor',[0.94 0.94 0.94],...
    'Tag','hInfoTable');
&gt;&gt; jscroll=findjobj(info)

jscroll =javahandle_withcallbacks.com.mathworks.hg.peer.utils.UIScrollPane
</pre>
<p>All seems OK to me:</p>
<pre lang='matlab'>
&gt;&gt; jscroll.getComponents()

ans =

  java.awt.Component[]:

    [1×1 javax.swing.JViewport                     ]
    [1×1 com.mathworks.hg.peer.utils.UIScrollPane$1]
    [1×1 com.mathworks.hg.peer.utils.UIScrollPane$2]
    [1×1 javax.swing.JViewport                     ]
    [1×1 javax.swing.JViewport                     ]
    [1×1 javax.swing.JList                         ]
</pre>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Meade		</title>
		<link>https://undocumentedmatlab.com/articles/faster-findjobj#comment-389292</link>

		<dc:creator><![CDATA[Meade]]></dc:creator>
		<pubDate>Mon, 26 Sep 2016 20:26:48 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6376#comment-389292</guid>

					<description><![CDATA[@Malcolm,

You&#039;ve got my attention!  My situation is that the JScrollPane is actually created by the &lt;b&gt;&lt;em&gt;uitable&lt;/b&gt;&lt;/em&gt; command.  Is it possible to tweak this matlab command in order to accomplish what you&#039;ve suggested?  I was hoping to avoid a pure java creation, since I&#039;m more comfortable creating the gui using Matlab methods.
%(begin code)&lt;pre lang=&quot;matlab&quot;&gt;
info = uitable(&#039;Parent&#039;,hLeft,...
    &#039;Data&#039;,cell(5,1),...
    &#039;ColumnName&#039;, [],...
    &#039;RowName&#039;,infoCell,...
    &#039;RowStriping&#039;,&#039;off&#039;,...
    &#039;ColumnWidth&#039;, {397},...
    &#039;ColumnFormat&#039;, columnformat,...
    &#039;ColumnEditable&#039;, false,...
    &#039;Position&#039;,[30, 10, 500, 140 ],...
    &#039;FontSize&#039;,10,...
    &#039;TooltipString&#039;,TTstr.TSVinfo,...
    &#039;BackgroundColor&#039;,[0.94 0.94 0.94],...
    &#039;Tag&#039;,&#039;hInfoTable&#039;);

%%% Java voodoo for Info table
jscroll=findjobj(info);&lt;/pre&gt;
% end code

Thanks again for all the help.
Meade]]></description>
			<content:encoded><![CDATA[<p>@Malcolm,</p>
<p>You&#8217;ve got my attention!  My situation is that the JScrollPane is actually created by the <b><em>uitable</em></b> command.  Is it possible to tweak this matlab command in order to accomplish what you&#8217;ve suggested?  I was hoping to avoid a pure java creation, since I&#8217;m more comfortable creating the gui using Matlab methods.<br />
%(begin code)</p>
<pre lang="matlab">
info = uitable('Parent',hLeft,...
    'Data',cell(5,1),...
    'ColumnName', [],...
    'RowName',infoCell,...
    'RowStriping','off',...
    'ColumnWidth', {397},...
    'ColumnFormat', columnformat,...
    'ColumnEditable', false,...
    'Position',[30, 10, 500, 140 ],...
    'FontSize',10,...
    'TooltipString',TTstr.TSVinfo,...
    'BackgroundColor',[0.94 0.94 0.94],...
    'Tag','hInfoTable');

%%% Java voodoo for Info table
jscroll=findjobj(info);</pre>
<p>% end code</p>
<p>Thanks again for all the help.<br />
Meade</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Malcolm Lidierth		</title>
		<link>https://undocumentedmatlab.com/articles/faster-findjobj#comment-389070</link>

		<dc:creator><![CDATA[Malcolm Lidierth]]></dc:creator>
		<pubDate>Fri, 23 Sep 2016 19:02:16 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6376#comment-389070</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/faster-findjobj#comment-386902&quot;&gt;Meade&lt;/a&gt;.

Meade

Create your JScrollPane through a call to 
&#062;&#062; jscroll=javaObjectEDT(&#039;javax.swing.JScrollPane&#039;);

That on it&#039;s own might(??) fix all your problems as subsequent methods calls to the scroll pane should be despatched via the EDT. If not do post your construction code. Very few Swing methods are inherently thread-safe and this does look like a treading issue.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/faster-findjobj#comment-386902">Meade</a>.</p>
<p>Meade</p>
<p>Create your JScrollPane through a call to<br />
&gt;&gt; jscroll=javaObjectEDT(&#8216;javax.swing.JScrollPane&#8217;);</p>
<p>That on it&#8217;s own might(??) fix all your problems as subsequent methods calls to the scroll pane should be despatched via the EDT. If not do post your construction code. Very few Swing methods are inherently thread-safe and this does look like a treading issue.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Meade		</title>
		<link>https://undocumentedmatlab.com/articles/faster-findjobj#comment-389060</link>

		<dc:creator><![CDATA[Meade]]></dc:creator>
		<pubDate>Fri, 23 Sep 2016 14:33:48 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6376#comment-389060</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/faster-findjobj#comment-389012&quot;&gt;Malcolm Lidierth&lt;/a&gt;.

@Malcolm
I do not know if they are all on EDT.  I&#039;m an absolute java novice, but from reading, I cannot say whether all components are being accessed in the same thread.  This seems like a question that Yair might be able to answer since all the calls are being made within the &lt;b&gt;&lt;em&gt;findjobj&lt;/b&gt;&lt;/em&gt; call.

I understand this all seems stranges, but I get the errors while literally only changing the version of &lt;b&gt;&lt;em&gt;findjobj&lt;/b&gt;&lt;/em&gt; that is being used, so the difference must be related to that.  I&#039;m happy/willing/excited to make changes since Yair has made such dramatic speed improvements in his utility, I&#039;m just at a loss as where to start.

Thanks for all the good suggestions.
Meade]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/faster-findjobj#comment-389012">Malcolm Lidierth</a>.</p>
<p>@Malcolm<br />
I do not know if they are all on EDT.  I&#8217;m an absolute java novice, but from reading, I cannot say whether all components are being accessed in the same thread.  This seems like a question that Yair might be able to answer since all the calls are being made within the <b><em>findjobj</em></b> call.</p>
<p>I understand this all seems stranges, but I get the errors while literally only changing the version of <b><em>findjobj</em></b> that is being used, so the difference must be related to that.  I&#8217;m happy/willing/excited to make changes since Yair has made such dramatic speed improvements in his utility, I&#8217;m just at a loss as where to start.</p>
<p>Thanks for all the good suggestions.<br />
Meade</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Malcolm Lidierth		</title>
		<link>https://undocumentedmatlab.com/articles/faster-findjobj#comment-389012</link>

		<dc:creator><![CDATA[Malcolm Lidierth]]></dc:creator>
		<pubDate>Thu, 22 Sep 2016 23:46:18 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6376#comment-389012</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/faster-findjobj#comment-386902&quot;&gt;Meade&lt;/a&gt;.

@Meade
Not sure about this. Are your components on the EDT? Are the components visible? You might try a drawnow() and see if that order dependence disappears. Also see javaObjectEDT.
ML]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/faster-findjobj#comment-386902">Meade</a>.</p>
<p>@Meade<br />
Not sure about this. Are your components on the EDT? Are the components visible? You might try a drawnow() and see if that order dependence disappears. Also see javaObjectEDT.<br />
ML</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Meade		</title>
		<link>https://undocumentedmatlab.com/articles/faster-findjobj#comment-388986</link>

		<dc:creator><![CDATA[Meade]]></dc:creator>
		<pubDate>Thu, 22 Sep 2016 13:21:42 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6376#comment-388986</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/faster-findjobj#comment-387515&quot;&gt;Yair Altman&lt;/a&gt;.

@Yair - Thanks so much for the reply.
I&#039;ve been using your &lt;b&gt;.list&lt;/b&gt; tip to dig into this more deeply and it seems that the new &lt;b&gt;&lt;em&gt;findjobj&lt;/em&gt;&lt;/b&gt; function returns a different (shorter) list of components than the older revision.  This seems to be why my subsequent call for &lt;pre lang=&quot;matlab&quot;&gt;jscroll.getComponent(4);&lt;/pre&gt; fails.
For example:
&lt;pre lang=&quot;matlab&quot;&gt;jscroll = findobj(info);
jscroll.list&lt;/pre&gt;
yields:
&lt;pre lang=&quot;java&quot;&gt;
com.mathworks.hg.peer.utils.UIScrollPane[, 0, 0, 0x0, invalid, ..., viewportBorder = ]
javax.swing.JViewport[, 0, 0, 0x0, invalid, ..., scrollUnderway = false]
com.mathworks.hg.peer.ui.UITablePeer$23[hInfoTable, 0, 0, 0x0, invalid, ..., showHorizontalLines = true, showVerticalLines = true]
javax.swing.CellRendererPane[, 0, 0, 0x0, invalid, hidden]
com.mathworks.hg.peer.utils.UIScrollPane$1[, 0, 0, 0x0, invalid, ..., blockIncrement = 10, orientation = VERTICAL, unitIncrement = 1]
com.sun.java.swing.plaf.windows.WindowsScrollBarUI$WindowsArrowButton[, 0, 0, 0x0, invalid, ..., defaultCapable = true]
com.sun.java.swing.plaf.windows.WindowsScrollBarUI$WindowsArrowButton[, 0, 0, 0x0, invalid, ..., defaultCapable = true]
com.mathworks.hg.peer.utils.UIScrollPane$2[, 0, 0, 0x0, invalid, ..., blockIncrement = 10, orientation = HORIZONTAL, unitIncrement = 1]
com.sun.java.swing.plaf.windows.WindowsScrollBarUI$WindowsArrowButton[, 0, 0, 0x0, invalid, ..., defaultCapable = true]
com.sun.java.swing.plaf.windows.WindowsScrollBarUI$WindowsArrowButton[, 0, 0, 0x0, invalid, ..., defaultCapable = true]
&lt;/pre&gt;

While
&lt;pre lang=&quot;matlab&quot;&gt;jscrollOLD = findobjOLD(info);
jscrollOLD.list&lt;/pre&gt;
yields:
&lt;pre lang=&quot;java&quot;&gt;
com.mathworks.hg.peer.utils.UIScrollPane[, 0, 0, 500 x140, invalid, ..., viewportBorder = ]
javax.swing.JViewport[, 375, 1, 124 x121, invalid, ..., scrollUnderway = false]
com.mathworks.hg.peer.ui.UITablePeer$23[hInfoTable, 0, 0, 397 x120, invalid, ..., showHorizontalLines = true, showVerticalLines = true]
javax.swing.CellRendererPane[, 0, 0, 0x0, invalid, hidden]
com.mathworks.hg.peer.utils.UIScrollPane$1[, 0, 0, 0x0, invalid, hidden, ..., blockIncrement = 10, orientation = VERTICAL, unitIncrement = 1]
com.sun.java.swing.plaf.windows.WindowsScrollBarUI$WindowsArrowButton[, 0, 0, 0x0, invalid, ..., defaultCapable = true]
com.sun.java.swing.plaf.windows.WindowsScrollBarUI$WindowsArrowButton[, 0, 0, 0x0, invalid, ..., defaultCapable = true]
com.mathworks.hg.peer.utils.UIScrollPane$2[, 375, 122, 124 x17, invalid, ..., blockIncrement = 10, orientation = HORIZONTAL, unitIncrement = 1]
com.sun.java.swing.plaf.windows.WindowsScrollBarUI$WindowsArrowButton[, 107, 0, 17 x17, invalid, ..., defaultCapable = true]
com.sun.java.swing.plaf.windows.WindowsScrollBarUI$WindowsArrowButton[, 0, 0, 17 x17, invalid, ..., defaultCapable = true]
javax.swing.JViewport[, 375, 1, 124 x0, invalid, ..., scrollUnderway = false]
javax.swing.JLabel[, 1, 1, 374 x0, invalid, ..., verticalAlignment = CENTER, verticalTextPosition = CENTER]
&lt;/pre&gt;

I&#039;m sure that I&#039;m missing something obvious, but any insight you have would be greatly appreciated.
(As a final note, curiously, if I call the older version of &lt;b&gt;&lt;em&gt;findjobj&lt;/b&gt;&lt;/em&gt; first, then the newer version will successfully find all components.  Thus, there is some sort of order dependence?! Weird!

Thanks so much,
Meade]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/faster-findjobj#comment-387515">Yair Altman</a>.</p>
<p>@Yair &#8211; Thanks so much for the reply.<br />
I&#8217;ve been using your <b>.list</b> tip to dig into this more deeply and it seems that the new <b><em>findjobj</em></b> function returns a different (shorter) list of components than the older revision.  This seems to be why my subsequent call for </p>
<pre lang="matlab">jscroll.getComponent(4);</pre>
<p> fails.<br />
For example:</p>
<pre lang="matlab">jscroll = findobj(info);
jscroll.list</pre>
<p>yields:</p>
<pre lang="java">
com.mathworks.hg.peer.utils.UIScrollPane[, 0, 0, 0x0, invalid, ..., viewportBorder = ]
javax.swing.JViewport[, 0, 0, 0x0, invalid, ..., scrollUnderway = false]
com.mathworks.hg.peer.ui.UITablePeer$23[hInfoTable, 0, 0, 0x0, invalid, ..., showHorizontalLines = true, showVerticalLines = true]
javax.swing.CellRendererPane[, 0, 0, 0x0, invalid, hidden]
com.mathworks.hg.peer.utils.UIScrollPane$1[, 0, 0, 0x0, invalid, ..., blockIncrement = 10, orientation = VERTICAL, unitIncrement = 1]
com.sun.java.swing.plaf.windows.WindowsScrollBarUI$WindowsArrowButton[, 0, 0, 0x0, invalid, ..., defaultCapable = true]
com.sun.java.swing.plaf.windows.WindowsScrollBarUI$WindowsArrowButton[, 0, 0, 0x0, invalid, ..., defaultCapable = true]
com.mathworks.hg.peer.utils.UIScrollPane$2[, 0, 0, 0x0, invalid, ..., blockIncrement = 10, orientation = HORIZONTAL, unitIncrement = 1]
com.sun.java.swing.plaf.windows.WindowsScrollBarUI$WindowsArrowButton[, 0, 0, 0x0, invalid, ..., defaultCapable = true]
com.sun.java.swing.plaf.windows.WindowsScrollBarUI$WindowsArrowButton[, 0, 0, 0x0, invalid, ..., defaultCapable = true]
</pre>
<p>While</p>
<pre lang="matlab">jscrollOLD = findobjOLD(info);
jscrollOLD.list</pre>
<p>yields:</p>
<pre lang="java">
com.mathworks.hg.peer.utils.UIScrollPane[, 0, 0, 500 x140, invalid, ..., viewportBorder = ]
javax.swing.JViewport[, 375, 1, 124 x121, invalid, ..., scrollUnderway = false]
com.mathworks.hg.peer.ui.UITablePeer$23[hInfoTable, 0, 0, 397 x120, invalid, ..., showHorizontalLines = true, showVerticalLines = true]
javax.swing.CellRendererPane[, 0, 0, 0x0, invalid, hidden]
com.mathworks.hg.peer.utils.UIScrollPane$1[, 0, 0, 0x0, invalid, hidden, ..., blockIncrement = 10, orientation = VERTICAL, unitIncrement = 1]
com.sun.java.swing.plaf.windows.WindowsScrollBarUI$WindowsArrowButton[, 0, 0, 0x0, invalid, ..., defaultCapable = true]
com.sun.java.swing.plaf.windows.WindowsScrollBarUI$WindowsArrowButton[, 0, 0, 0x0, invalid, ..., defaultCapable = true]
com.mathworks.hg.peer.utils.UIScrollPane$2[, 375, 122, 124 x17, invalid, ..., blockIncrement = 10, orientation = HORIZONTAL, unitIncrement = 1]
com.sun.java.swing.plaf.windows.WindowsScrollBarUI$WindowsArrowButton[, 107, 0, 17 x17, invalid, ..., defaultCapable = true]
com.sun.java.swing.plaf.windows.WindowsScrollBarUI$WindowsArrowButton[, 0, 0, 17 x17, invalid, ..., defaultCapable = true]
javax.swing.JViewport[, 375, 1, 124 x0, invalid, ..., scrollUnderway = false]
javax.swing.JLabel[, 1, 1, 374 x0, invalid, ..., verticalAlignment = CENTER, verticalTextPosition = CENTER]
</pre>
<p>I&#8217;m sure that I&#8217;m missing something obvious, but any insight you have would be greatly appreciated.<br />
(As a final note, curiously, if I call the older version of <b><em>findjobj</em></b> first, then the newer version will successfully find all components.  Thus, there is some sort of order dependence?! Weird!</p>
<p>Thanks so much,<br />
Meade</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Yair Altman		</title>
		<link>https://undocumentedmatlab.com/articles/faster-findjobj#comment-387515</link>

		<dc:creator><![CDATA[Yair Altman]]></dc:creator>
		<pubDate>Tue, 06 Sep 2016 16:21:48 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6376#comment-387515</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/faster-findjobj#comment-386902&quot;&gt;Meade&lt;/a&gt;.

@Meade - as you can see, the error is not in the &lt;i&gt;&lt;b&gt;findjobj&lt;/b&gt;&lt;/i&gt; call but in your code (&lt;code&gt;jscroll.getComponent(4)&lt;/code&gt;). You need to check the jscroll object that &lt;i&gt;&lt;b&gt;findjobj&lt;/b&gt;&lt;/i&gt; returned and see why there is no 5th component (Java indexes start from 0, so &quot;4&quot; means &quot;5th&quot;). You can do something like this:

&lt;pre lang=&quot;matlab&quot;&gt;
&gt;&gt; jscroll = findjobj(MyUitable)
&gt;&gt; jscroll.list
&lt;/pre&gt;]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/faster-findjobj#comment-386902">Meade</a>.</p>
<p>@Meade &#8211; as you can see, the error is not in the <i><b>findjobj</b></i> call but in your code (<code>jscroll.getComponent(4)</code>). You need to check the jscroll object that <i><b>findjobj</b></i> returned and see why there is no 5th component (Java indexes start from 0, so &#8220;4&#8221; means &#8220;5th&#8221;). You can do something like this:</p>
<pre lang="matlab">
>> jscroll = findjobj(MyUitable)
>> jscroll.list
</pre>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Meade		</title>
		<link>https://undocumentedmatlab.com/articles/faster-findjobj#comment-386902</link>

		<dc:creator><![CDATA[Meade]]></dc:creator>
		<pubDate>Mon, 29 Aug 2016 20:29:12 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6376#comment-386902</guid>

					<description><![CDATA[Hi Yair,

I&#039;ve been using your excellent utility in a deployed toolbox for about a year now.
Anyway, when I updated, I know get the following error

&lt;pre lang=&quot;matlab&quot;&gt;Java exception occurred:
java.lang.ArrayIndexOutOfBoundsException: No such child: 4
	at java.awt.Container.getComponent(Unknown Source)
&lt;/pre&gt;

This seems to be related to this call:
&lt;pre lang=&quot;matlab&quot;&gt;
jscroll = findjobj(MyUitable)  %get jScroll UI element under Matlab table
rhv = jscroll.getComponent(4);
&lt;/pre&gt;

This call has worked without issue in an older version of &#124;findjobj&#124; (% $Revision: 1.46 $  $Date: 2015/01/12 13:54:47 $)
I&#039;m also directed to a MW page about deprecating JFrame support.

Any thoughts would be most appreciated!
Best,
Meade]]></description>
			<content:encoded><![CDATA[<p>Hi Yair,</p>
<p>I&#8217;ve been using your excellent utility in a deployed toolbox for about a year now.<br />
Anyway, when I updated, I know get the following error</p>
<pre lang="matlab">Java exception occurred:
java.lang.ArrayIndexOutOfBoundsException: No such child: 4
	at java.awt.Container.getComponent(Unknown Source)
</pre>
<p>This seems to be related to this call:</p>
<pre lang="matlab">
jscroll = findjobj(MyUitable)  %get jScroll UI element under Matlab table
rhv = jscroll.getComponent(4);
</pre>
<p>This call has worked without issue in an older version of |findjobj| (% $Revision: 1.46 $  $Date: 2015/01/12 13:54:47 $)<br />
I&#8217;m also directed to a MW page about deprecating JFrame support.</p>
<p>Any thoughts would be most appreciated!<br />
Best,<br />
Meade</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Yaroslav		</title>
		<link>https://undocumentedmatlab.com/articles/faster-findjobj#comment-374622</link>

		<dc:creator><![CDATA[Yaroslav]]></dc:creator>
		<pubDate>Mon, 18 Apr 2016 16:25:11 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=6376#comment-374622</guid>

					<description><![CDATA[Hi Yair,

Kudos on the good work and on your meticulous maintenance. It helps a lot. 

One small thing though: &lt;code&gt;findjobj&lt;/code&gt; still doesn&#039;t accept the &lt;code&gt;groot&lt;/code&gt; object. For example (Matlab R2015b),
&lt;pre lang=&quot;matlab&quot;&gt;
&#062;&#062; findjobj(groot)
findjobj: The following error occurred converting from matlab.ui.Root to handle:
Conversion to handle from matlab.ui.Root is not possible.

Error in findjobj/traverseContainer (line 523)
        handles(thisIdx) = handle(jcontainer,&#039;callbackproperties&#039;);

Error in findjobj (line 277)
            traverseContainer(container,0,1);

&lt;/pre&gt;

Nevertheless, the old syntax still works:
&lt;pre lang=&quot;matlab&quot;&gt;
&#062;&#062; findjobj(0)

ans =
 
	handle: 1-by-1170
&lt;/pre&gt;

Cheers]]></description>
			<content:encoded><![CDATA[<p>Hi Yair,</p>
<p>Kudos on the good work and on your meticulous maintenance. It helps a lot. </p>
<p>One small thing though: <code>findjobj</code> still doesn&#8217;t accept the <code>groot</code> object. For example (Matlab R2015b),</p>
<pre lang="matlab">
&gt;&gt; findjobj(groot)
findjobj: The following error occurred converting from matlab.ui.Root to handle:
Conversion to handle from matlab.ui.Root is not possible.

Error in findjobj/traverseContainer (line 523)
        handles(thisIdx) = handle(jcontainer,'callbackproperties');

Error in findjobj (line 277)
            traverseContainer(container,0,1);

</pre>
<p>Nevertheless, the old syntax still works:</p>
<pre lang="matlab">
&gt;&gt; findjobj(0)

ans =
 
	handle: 1-by-1170
</pre>
<p>Cheers</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
