Can the name of a specific node in a JTree be returned by MouseEvent?

I have created a mouseListener for a JTree. When a node in the JTree is clicked it should display the name of the node in a JOptionPane. Currently, I have the following:
tree.addMouseListener(new MouseAdapter()
public void mouseClicked(MouseEvent me)
     if(me.getClickCount() % 2 == 0)
     String s = "Blank";
     s = (me.getSource()).toString();
     JOptionPane.showMessageDialog(null, "Double clicked "+ s, "two", JOptionPane.PLAIN_MESSAGE);               
}//mouseClicked          
});//MouseListener
This gives me the class X Y value, border, maxsize, etc.... when a node is double clicked.
Does anyone know of a better way?

Don't use MouseListener.
Instead, make yourself a TreeSelectionListener as follows:
public class WhererverYourTreeIs implements TreeSelectionListener
     public void valueChanged(TreeSelectionEvent e)
         TreePath path = e.getPath();
         System.out.println(path.getLastPathComponent());
     public void initStuff()
             tree.addTreeSelectionLIstener(this);
}

Similar Messages

  • Read the name of a parent node of a (static) Tree UI in WebDynPro Abap

    hi Experts,
    I have a tree control UI that has two levels of nodes from the Root node. Year & Month. Inside the Month Node there is always only one leaf that is called Current Schedule. User clicks on Current Schedule to view the Current Schedule. This could be any month's Current Schedule of the User's choice.
    Thus, I need to know which month's current schedule is chosen by the user. My tree UI is an adaptation from WDT_TREE example from Std SAP example programs. For the chosen month to be known, I have to go up in the context node hierarchy by one level? (something like, get_parent of) from the current leaf. I am not sure how would i do it. Any pointers would be greatly helpful. I tried to pick up ideas from couple of tutorials and bunch of forum posts but I did not get anywhere.
    The key to my requirement is just going up one level in the tree and get to know the 'name' of that node. That will tell me the Month of the User's choice.
    Thanks in advance for your helpful answers/pointers

    Thanks Bala Duvvuri,
    Could you please elaborate a bit more on your tip. I am a fledgling OO abapper not 'really' knowing as much OO as I should ..!!
    By the way,I found out, I could apply the same OnAction method in the WDT_TREE example shown at the final leaf level to the node level as well to read the text of Month Node. It worked out and it meets my purpose with a rider..!
    In order to get this Month node text for the selected 'Current Schedule' leaf, User have to click on the Month Node that opens the Current Schedule Leaf. If they clicked on the triangle beside the node, it still opens the Month Node to reveal the Current Schedule leaf, but the Month name wont be captured until User expressly clicked on Month Node first or the Folder Icon associated with it..!!
    In other words, User cannot click on the left side triangle;  if they did to reach the Current Schdule, the program wont work properly. This is no good, though i could talk my way through with the User to accept this. But technically i know it is possible to know the month name from a given Current Schedule leaf in the tree,though dont know how ..!!
    Your bit more detailed reply would help me implement the more elegant solution than pushing the user to accept what i did.
    As I await your reply i shall try to pick up from your tip.
    In the meanwhile my tree has grown ..!! to have two more nodes, in which the contents need to be dynamically populated. Guess I am in for a long haul with the Tree UI
    Looking to hear more. Thanks heaps again.

  • Can the name of the TASK bound to process level determined dynamically?

    In the 'Complete and Order' step of shopping cart scenario, we can display/ edit agents. This function enable us to see the approver list. In the 2nd column Process Step, there will be a description of the approver, which is the name of the corresponding task in the BRF process level. But when we want to reuse the task for several process level, we need to dynamically set this description. Since it is a name of the TASK, how can we achieve that?
    Thanks for reading.

    Actually this is what I was trying to do:
    <select name="<c:out value="${id}"/>versions" >
    <c:if test="${param.{id}versions == yyy}"> selected </c:if>
    </select>
    Do you know how to make the comparision works? The problem is the double curly bracket.
    Thanks again

  • Can the names of bookmark folders in Mozilla Firefox be changed?

    Changing the name of Bookmark Folders

    If you have a problem then it's probably because you are running an old version of FF. I recommend installing the current version [http://www.mozilla.com/en-US/firefox/firefox.html Here]

  • Can I  Have JTable As Leaf Node Of A JTree?

    Hello there,
    I want to show jtable on a click of a node of a tree. I have seen Treetable utlility on SUN's site. But it not quite what i want.
    Does any one have any idea how to show JTable as a leaf node of a JTree.
    E.g There is a tree called Components. viz.
    Component
    |Node1
    |Node2
    On click of Node1 i should see Table1 and on click of Node2 i should see Table2.
    If anyone has any idea, can you explain how to do it Or some site name where help on this problem is available?
    Please mail back.
    Regards,
    Amit

    I used insertNodeInto() to inser a new node into the tree, and it can be displayed. But when I used addTreeSelectionListener() to click on the newly added node, it cann not reaspond the click. Following is my original addTreeSelectionListener(). You see, if you click a node of FARInfo, then it will open a form, and after user filled in and submit it, a new node will be added into the Jtree. If you click a node of FilledInfo, then the user should view the content of this new node. But now, it seems that the sencond click cannot work. Thanks for your help.
    tree.addTreeSelectionListener( new TreeSelectionListener()
    public void valueChanged(TreeSelectionEvent e4)
    DefaultMutableTreeNode node = ( DefaultMutableTreeNode )
    (tree.getLastSelectedPathComponent ());
    Object nodeInfo = node.getUserObject();
    if (node.isLeaf())
    if ( nodeInfo instanceof FARInfo )
    FARInfo category = (FARInfo) nodeInfo;
    displayURL ( category.categoryURL );
    displayForm ( category.farFormName );
    if ( DEBUG )
    System.out.print ( category.categoryURL + ":\n" );
    else if ( nodeInfo instanceof FilledInfo )
    FilledInfo category2 = ( FilledInfo ) nodeInfo;
    displayFilledForm ( category2.num );
    }else
    return;

  • Can the cursors in a property node be changed to the LabView 7.X format instead of 8.X?

    I plotted data and used the property node thing to create cursors so that I can select individual data points.  The LabView 7.0 or 7.1 format for the cursors was useful because I could punch in a number and the cursor would then jump to that number.  But with LabView 8.0, this option is apparently no longer available, and I must manually move the cursor to where I want it to go.  This is very time-consuming, and I would like to know if there's a way to revert to the LabView 7.0 format, or change the existing format so that I can tell the cursor where to go by punching in a number.  Any ideas?
    Attachments:
    question 090504.jpg ‏233 KB

    Sorry but no. You are stuck with the 8.0 style cursor option. I find the labview 8.x cursor display ugly and useless. Even my customers are very quick to specify that they do not want Labview 8.x styled cursors. I really miss the 7.1 type cursor display 
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)

  • How can I change the name displayed in the "TO" field of Mail.

    Recently, all incoming email now displays the name of a family member in the "TO" field.  I have checked mail preferences and the email account information has not been changed.  How can the name displayed in the TO: filed be changed?

    .. sounds like you created your Mail account with your family member's name but used your email address wen you created the account.. check your Mail/Preferences/Account then check System Preferences/iCloud or System Preferences/MobileMe

  • Selecting a node in a JTree knowing his path

    Hello for all,
    I'm trying to select a specific node in a JTree component by clicking a button.. this is my code :
    private DefaultMutableTreeNode treeNode = new DefaultMutableTreeNode("root");
    private DefaultTreeModel treeModel = new DefaultTreeModel(treeNode);
    private JTree tree = new JTree(treeModel);
    private JButton button = new JButton("Select");
    DefaultMutableTreeNode child1 = new DefaultMutableTreeNode("child1");
    DefaultMutableTreeNode child2 = new DefaultMutableTreeNode("child2");
    child1.add(new DefaultMutableTreeNode("child11"));
    treeNode.add(child1);
    treeNode.add(child2);
    button.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        TreePath path = new TreePath(new Object[]{"root", "child1"});               
        tree.setExpandsSelectedPaths(true);
        tree.scrollPathToVisible(path);
    });as you can see, I want to select the node with the path "root/child1"..
    but I'm getting this exception : Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to javax.swing.tree.TreeNode..
    any ideas ?

    You will want to read the second sentence in the TreePath comments section.
    Also, read the second sentence in the TreePath Method Detail section for the
    getLastPathComponent method.
    With these clues &#8212; try getting a TreePath from the tree you are working with.
    For example, you can try something like tree.getPathForRow(row) using the
    visible row index of "child1". Since the TreePath returned comes from the tree
    it will understand what to do with it. You can check the class name of the
    components that are returned in the TreePath to confirm this. And it will
    explain the exception you quoted.

  • How to highlight a node in a JTree???

    I am trying to highlight (actually set the Font to Bold) one node of a JTree when an TreeSelectionEvent occurs (valueChanged method). The node to be highlighted can be different than the one selected.
    Thanks for your help.
    JavaSan

    To control the appearance of tree nodes, you need to write a TreeCellRenderer. Check Sun's tutorial on how to use trees (there's a link to it in the API documentation for JTree). The signature of the method you need to implement is this:
    public Component getTreeCellRendererComponent(
        JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus)so as you can see, you can vary the appearance of the node based on any of the parameters of that method.

  • How can I uniquely identify computers on the same network/account specifically for airdrop use?  When I change name on one computer under contacts if changes on all computers.

    How can I uniquely identify computers on the same network/account specifically for airdrop use?  When I change name on one computer under contacts it changes on all computers.  I would like to change icon and name for each computer.

    you would need to setup a VPN and tunnel into your office.
    FYI..the default ports are 3283 and 5900.

  • Urgent! the name of tree node can't show  completely

    I create a tree dynamicly using data from database;when i want to add a new node to the tree.it will be added at the right place imediately but it's name will not show completely.
    for example, i want to add a new node which name is "department",but the name on the tree it shown will be "departm...", i don't know what cause the 3 dot followed and how to remove the dot.
    Can anybody tell me why? Thanks a lot

    I use a IconNode which extend DefaultMutableTreeNode to create the node.
    following is the IconNode:
    import java.util.*;
    import javax.swing.*;
    import javax.swing.tree.*;
    * @version 1.1 06/19/99
    public class IconNode extends DefaultMutableTreeNode {
    protected Icon icon;
    protected String iconName;
    protected boolean isActive=false;
    public IconNode() {
    this(null);
    public IconNode(Object userObject) {
    this(userObject, true, null);
    public IconNode(Object userObject, boolean allowsChildren
    , Icon icon) {
    super(userObject, allowsChildren);
    this.icon = icon;
    public void setIcon(Icon icon) {
    this.icon = icon;
    public Icon getIcon() {
    return icon;
    public boolean isActive(){
    return this.isActive;
    public void setActive(boolean flag){
    this.isActive=flag;
    public String getIconName() {
    if (iconName != null) {
    return iconName;
    else {
    String str = userObject.toString();
    int index = str.lastIndexOf(".");
    if (index != -1) {
    return str.substring(++index);
    else {
    return str;
    public void setIconName(String name) {
    iconName = name;
    following is the operation of adding node:
    private IconNode addObject(Object child) {
    IconNode parentNode = null;
    TreePath parentPath = appQueueTree.getSelectionPath();
    if (parentPath == null) {
    parentNode = rootNode;
    else {
    parentNode = (IconNode)
    (parentPath.getLastPathComponent());
    return addObject(parentNode, child, true);
    private IconNode addObject(IconNode parent,
    Object child,
    boolean shouldBeVisible) {
    IconNode childNode = new IconNode(child);
    // TreeNodeData is a value object contains the data of node.
    TreeNodeData temp=(TreeNodeData)child;
    int flag=temp.getNodeType();// get the type of node
    //to set the right icon of node
    switch(flag){
    case 1://childNode.setIcon();
    break;
    case 2:childNode.setIcon(leafIcon);
    break;
    case 3:childNode.setIcon(connectedDepartmentIcon);
    if (parent == null) {
    parent = rootNode;
    treeModel.insertNodeInto(childNode, parent,
    parent.getChildCount());
    //Make sure the user can see the lovely new node.
    if (shouldBeVisible) {
    //to scroll the tree path to node newly be added.
    appQueueTree.scrollPathToVisible(new TreePath(childNode.getPath()));
    return childNode;

  • How can i add a file name(the text of the file name) as a child node to existing node in a treeView1 ?

    bool exists = false;
    TreeNode newNodeParsed = null;
    TreeNode rootNode = treeViewMS1.Nodes[0];
    TreeNode nextNode = rootNode;
    string f = Path.GetFileName(txtUploadFile.Text);
    TreeNode subnode = new TreeNode(txtDir.Text);
    TreeNode filename = new TreeNode(f);
    if (!txtDir.Text.Contains("/"))
    foreach (TreeNode node in rootNode.Nodes)
    if (node.Text == txtDir.Text)
    exists = true;
    break;
    if (exists == true)
    subnode.Nodes.Add(f);
    else
    rootNode.Nodes.Add(subnode);
    subnode.Nodes.Add(f);
    The rootNode is the root directory in the treeView1
    subnode is a node inside the root. For example the subnode name is manuelisback
    I'm checking if the subnode exist i want to add the file for example (lightning1.jpg) to be under subnode.
    If the subnode is not existing add the subnode to the root and then add the file name lightning1.jpg under the subnode.
    But the file name is never added under the subnode:
    I added manualy the lightning1.jpg under test.
    But the lightning1.jpg also should be added to be under manuelisback. There should be two lightning1.jpg here.
    One under manuelisback and one under test. The one under test i added manualy from my ftp server.
    But the one i want to be under manuelisback i'm trying to add from my program and it dosen't add it to there.
    And when i'm using a breakpoint i see on subnode the text manuelisback and i see on f the text lightning1.jpg

    If I understand your question correctly, you might want to try changing:
    if (!txtDir.Text.Contains("/"))
    foreach (TreeNode node in rootNode.Nodes)
    if (node.Text == txtDir.Text)
    exists = true;
    break;
    if (exists == true)
    subnode.Nodes.Add(f);
    else
    rootNode.Nodes.Add(subnode);
    subnode.Nodes.Add(f);
    to something like:
    if (!txtDir.Text.Contains("/"))
    foreach (TreeNode node in rootNode.Nodes)
    if (node.Text == txtDir.Text)
    subnode = node;
    exists = true;
    break;
    if (exists == true)
    subnode.Nodes.Add(f);
    else
    rootNode.Nodes.Add(subnode);
    subnode.Nodes.Add(f);
    rootNode.Nodes.Add(f);
    It would be greatly appreciated if you would mark any helpful entries as helpful and if the entry answers your question, please mark it with the Answer link.

  • Using XSLT to empty nodes with the exception of  specific node.

    I have XSLT code working which will remove all the empty elements. My user wishes to exempt a specific node, <BypassDateEdits>. I can not figure out the correct syntax to do this.
    Source XML is:
    <?xml version="1.0" encoding="UTF-8"?>
    <IMDSCDB xmlns="http://xml.dod.mil/log/maint/fs/main/4.0.0">
    <EndItemTCTOReporting originator="EMOC">
    <PartialJobDataDocumentationData/>
    <JobControlNumber>
    <EventId>052790038</EventId>
    <WorkcenterEvent>001</WorkcenterEvent>
    </JobControlNumber>
    <End/>
    <HomeEnterpriseLocationCode>7494</HomeEnterpriseLocationCode>
    <CurrentEnterpriseLocationCode>7494</CurrentEnterpriseLocationCode>
    <HostUnitDateAndTime>2006-02-23T19:29:37</HostUnitDateAndTime>
    <TransactionOrdinalDate>06054</TransactionOrdinalDate>
    <ComponentPosition>0</ComponentPosition>
    <HowMalfunctionCode>802</HowMalfunctionCode>
    <UnitsProduced>01</UnitsProduced>
    <StartTime>0800</StartTime>
    <StopDate>05200</StopDate>
    <StopTime>0805</StopTime>
    <CrewSize>6</CrewSize>
    <CategoryOfLaborCode>1</CategoryOfLaborCode>
    <ActivityIdentifierCode>02</ActivityIdentifierCode>
    <CorrectedByIMDSCDBUserId>GU03CW</CorrectedByIMDSCDBUserId>
    <CorrectiveActionNarrative>Test Test</CorrectiveActionNarrative>
    <InspectedByIMDSCDBUserId>GU03CW</InspectedByIMDSCDBUserId>
    <DocumentMoreTCTOThisJobControlNumber/>
    <InspectionPassed>Y</InspectionPassed>
    <BypassDateEdits/>
    </EndItemTCTOReporting>
    </IMDSCDB>
    Desired output is:
    <?xml version="1.0" encoding="UTF-8"?>
    <IMDSCDB xmlns="http://xml.dod.mil/log/maint/fs/main/4.0.0">
    <EndItemTCTOReporting originator="EMOC">
    <PartialJobDataDocumentationData/>
    <JobControlNumber>
    <EventId>052790038</EventId>
    <WorkcenterEvent>001</WorkcenterEvent>
    </JobControlNumber>
    <HomeEnterpriseLocationCode>7494</HomeEnterpriseLocationCode>
    <CurrentEnterpriseLocationCode>7494</CurrentEnterpriseLocationCode>
    <HostUnitDateAndTime>2006-02-23T19:29:37</HostUnitDateAndTime>
    <TransactionOrdinalDate>06054</TransactionOrdinalDate>
    <ComponentPosition>0</ComponentPosition>
    <HowMalfunctionCode>802</HowMalfunctionCode>
    <UnitsProduced>01</UnitsProduced>
    <StartTime>0800</StartTime>
    <StopDate>05200</StopDate>
    <StopTime>0805</StopTime>
    <CrewSize>6</CrewSize>
    <CategoryOfLaborCode>1</CategoryOfLaborCode>
    <ActivityIdentifierCode>02</ActivityIdentifierCode>
    <CorrectedByIMDSCDBUserId>GU03CW</CorrectedByIMDSCDBUserId>
    <CorrectiveActionNarrative>Test Test</CorrectiveActionNarrative>
    <InspectedByIMDSCDBUserId>GU03CW</InspectedByIMDSCDBUserId>
    <InspectionPassed>Y</InspectionPassed>
    <BypassDateEdits/>
    </EndItemTCTOReporting>
    </IMDSCDB>
    XSLT to remove all empty nodes is:
    <?xml version="1.0"?>
    <xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">
    <xsl:template match="@* | node()">
    <xsl:copy>
    <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
    </xsl:template>
    <xsl:template match="*[not(descendant::text()[normalize-space()])]" >
    </xsl:template>
    </xsl:stylesheet>
    I believe I need to use the | operator to select the additional node set of just the <BypassDateEdits> node, but repeated attempt and research on the web has enabled me to find a solution.
    Any assistance would be appreciated.
    Bill

    having gotten a big clue from tsuji, I finally achieved the correct XSLT.
    This XSLT:
    <?xml version="1.0"?>
    <xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">
    <xsl:template match="@* | node()">
    <xsl:copy>
    <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
    </xsl:template>
    <xsl:template match="*[not(local-name()='BypassDateEdits') and namespace-uri()='http://xml.dod.mil/log/maint/fs/main/4.0.0'][not(descendant::text()[normalize-space()])]" >
    </xsl:template>
    </xsl:stylesheet>
    Yields the desired results:
    <?xml version="1.0" encoding="UTF-8"?><IMDSCDB xmlns="http://xml.dod.mil/log/maint/fs/main/4.0.0">
    <EndItemTCTOReporting originator="EMOC">
    <JobControlNumber>
    <EventId>052790038</EventId>
    <WorkcenterEvent>001</WorkcenterEvent>
    </JobControlNumber>
    <HomeEnterpriseLocationCode>7494</HomeEnterpriseLocationCode>
    <CurrentEnterpriseLocationCode>7494</CurrentEnterpriseLocationCode>
    <HostUnitDateAndTime>2006-02-23T19:29:37</HostUnitDateAndTime>
    <TransactionOrdinalDate>06054</TransactionOrdinalDate>
    <ComponentPosition>0</ComponentPosition>
    <HowMalfunctionCode>802</HowMalfunctionCode>
    <UnitsProduced>01</UnitsProduced>
    <StartTime>0800</StartTime>
    <StopDate>05200</StopDate>
    <StopTime>0805</StopTime>
    <CrewSize>6</CrewSize>
    <CategoryOfLaborCode>1</CategoryOfLaborCode>
    <ActivityIdentifierCode>02</ActivityIdentifierCode>
    <CorrectedByIMDSCDBUserId>GU03CW</CorrectedByIMDSCDBUserId>
    <CorrectiveActionNarrative>Test Test</CorrectiveActionNarrative>
    <InspectedByIMDSCDBUserId>GU03CW</InspectedByIMDSCDBUserId>
    <InspectionPassed>Y</InspectionPassed>
    <BypassDateEdits/>
    </EndItemTCTOReporting>
    </IMDSCDB>
    Thank you tsuji,
    Bill

  • How to address message to the specific node of the ESB cluster

    Hi!
    We are running ESB on two node active-active cluster configuration. We use custom adapter to communicate with customer legacy system over Socket connection. The point is, that we need to transfer large amount of data from our database into customer system using one open socket connection. Because of memory limitation we had to split data into multiple messages in ESB. This socket connection can be open from any of the active cluster node, but ones it's open all messages must be send within the node which had open the connection.So, the messages should not arrive into another node. The question: How is it possible to address (route) ESB messages into specific node of the cluster?
    Thanks in advance.
    Jaro,

    Muthu92 wrote:
    Thank you for your reply. It is very useful for me.  But i can't give conditional operator in that operator. It is showing error.
    My Test cases
    A[0]+A[1]>150
    A[31]-50 <100.
    If those are your exact statements, then they don't make sense in a formula node.  You have to use them in an if-statement or some other type of control logic.  This mimics text-based programming languages such as C... See here for instructions on formula node syntax: http://zone.ni.com/reference/en-XX/help/371361G-01​/lvhowto/formula_node_syntax/
    For instance, you COULD say something like:
    **In this example, let A[0] == x, A[1] == y, A[31] == z**
    if(x+y>150)
    /* do something if this is true */
    else if(z-50 < 100)
    /* do something else */
    EDIT: 
    It should also be noted that Variable Names MUST be lowercase!! I just discovered this
    EDIT2:
    I stand corrected.  After trying to create an example and digging through the LabVIEW Help, I stumbled across this:
    Differences between the Parser in the Mathematics VIs and the Formula Node
    The parser in the Mathematics VIs supports all elements that Formula Nodes support with the following exceptions:
    Variables—Only a, a0, ..., a9, ... z, z0, ..., z9, are valid.
    Logical, conditional, inequality, equality—?:,, &&, !=, ==, <, >, <=, and >= are not valid.
    Functions—atan2, max, min, mod, pow, rem, and sizeOfDim are not valid. You can use these functions in a Formula Node or use their corresponding LabVIEW functions.
    So it DOES NOT seem like Eval Formula Node can do conditionals like you want.  I would just implement them using a LabVIEW based algorithm after all.  Trying to out smart the formula nodes to avoid simple LabVIEW code is just too much of a hassle
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    If someone helped you out, please select their post as the solution and/or give them Kudos!

  • Can you program a Slave's Node ID or Zone ID using the USB-8476 as the LIN Master?

    I am planning on using the USB-8476 LIN interface as the LIN bus Master in an application.  The application would require the USB-8476 (Master) to program a Node ID and Zone ID into a slave device that is on the LIN bus.  The slave device is a PIC12F1822 mcu + MCP2021 LIN transceiver.  After reading through the User/Software Manual for the USB-8476, it does NOT seem possible to assign an ID to a slave device.  It seems like you can only communicate with slaves that already have an ID programmed into their memory.  The Node/Zone ID terminology is used by our customer and may not conform exactly to the IDs associated with LIN.  I am new to the LIN world, so please let me know if you need more information about what I'm trying to accomplish.  Can you program a Slave's Node ID or Zone ID using the USB-8476 as the LIN Master?

    No need to respond to this topic.  The company that builds the slave device has a communications specification that was recently provided to me.  I should be able to use the NI USB-8476 and a call to the ncWrite function (NI-CAN Frame API function) to accomplish my goals. 

Maybe you are looking for