Javax.swing.tree.DefaultMutableTreeNode

I have a tree with some nodes in it.
I am using setAllowsChildren(boolean x) method of javax.swing.tree.DefaultMutableTreeNode on the nodes.
But the problem i m facing is
1....if setAllowsChildren() method returns true ,i m getting tree icon displayed on side of node(irrespective of whether the node has children or not )
I m facing with a challenge of allowing node to have children by using
setAllowsChildren(true) and at the same time display tree icon only when children are present.
Some of my friends say it is a java bug.
If not how do i go about solving this one.
Thanks in advance

Ok i will put it in another way.
Is there any other way by which the tree icon can be made to display
without the usage of[b] setAllowsChildren() method

Similar Messages

  • Creating file browser GUI using java swing tree

    Hi all,
    I have some questions which i wish to clarify asap. I am working on a file browser project using java swing. I need to create 2 separate buttons. 1 of them will add a 'folder' while the other button will add a 'file' to the tree when the buttons are clicked once. The sample source code known as 'DynamicTreeDemo' which is found in the java website only has 1 add button which is not what i want. Please help if you know how the program should be written. Thx a lot.
    Regards,

    Sorry, don't know 'DynamicTreeDemo'import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.tree.*;
    import java.io.File;
    public class Test extends JFrame {
      JTree jt = new JTree();
      DefaultTreeModel dtm = (DefaultTreeModel)jt.getModel();
      JButton newDir = new JButton("new Dir"), newFile = new JButton("new File");
      public Test() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container content = getContentPane();
        newDir.setEnabled(false);
        newFile.setEnabled(false);
        jt.setShowsRootHandles(true);
        content.add(new JScrollPane(jt), BorderLayout.CENTER);
        File c = new File("C:\\temp");
        DefaultMutableTreeNode root = new DefaultMutableTreeNode(c);
        dtm.setRoot(root);
        addChildren(root);
        jt.addTreeSelectionListener(new TreeSelectionListener() {
          public void valueChanged(TreeSelectionEvent tse) { select(tse) ; }
        JPanel jp = new JPanel();
        content.add(jp, BorderLayout.SOUTH);
        jp.add(newDir);
        jp.add(newFile);
        newDir.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent ae) {
            TreePath tp = jt.getSelectionPath();
            if (tp!=null) {
              DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode)tp.getLastPathComponent();
              File newFile = new File((File)dmtn.getUserObject(),"foo");
              if (newFile.mkdir()) {
                dmtn.add(new DefaultMutableTreeNode(newFile));
                dtm.nodeStructureChanged(dmtn);
              } else System.out.println("No Dir");
        newFile.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent ae) {
            TreePath tp = jt.getSelectionPath();
            if (tp!=null) {
              DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode)tp.getLastPathComponent();
              File newFile = new File((File)dmtn.getUserObject(),"foo.txt");
              try {
                if (newFile.createNewFile()) {
                  dmtn.add(new DefaultMutableTreeNode(newFile));
                  dtm.nodeStructureChanged(dmtn);
                } else System.out.println("No File");
              catch (java.io.IOException ioe) { ioe.printStackTrace(); }
        setSize(300, 300);
        setVisible(true);
      void select(TreeSelectionEvent tse) {
        TreePath tp = jt.getSelectionPath();
        newDir.setEnabled(false);
        newFile.setEnabled(false);
        if (tp!=null) {
          DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode)tp.getLastPathComponent();
          File f = (File)dmtn.getUserObject();
          if (f.isDirectory()) {
            newDir.setEnabled(true);
            newFile.setEnabled(true);
      void addChildren(DefaultMutableTreeNode parent) {
        File parentFile = (File)parent.getUserObject();
        File[] children = parentFile.listFiles();
        for (int i=0; i<children.length; i++) {
          DefaultMutableTreeNode child = new DefaultMutableTreeNode(children);
    parent.add(child);
    if (children[i].isDirectory()) addChildren(child);
    public static void main(String[] args) { new Test(); }

  • Building swing tree

    is it possible to build a tree with the tree coordinates
    i have a tree cordinates field and the description of the co-ordinate in my database
    tree-coord description
    1.1.2         AAA
    1.1.3         aaa
    2.1.2         VVV
    2.2.3         TTR
    I have build a tree according the co-ordinates.can any one give me a clue how to build tree with the given tree cordinates?
    is there any API for this?

    you can use swings to display data in a hierarchical manner. javax.swing.tree package would do that for you.

  • Problem in Swing tree root node when displaying Japanese

    I'm trying to create a tree using DefaultTreeModel. The root node will display text in Japanese and the other child nodes are in English. My problem is the root node fails to show Japanese correctly (only squares are shown).
    I've already set my font.properties.ja to display Japanese font for virtual font "dialog":
    dialog.plain.0=Arial,ANSI_CHARSET
    dialog.plain.1=\uff2d\uff33 \u30b4\u30b7\u30c3\u30af,SHIFTJIS_CHARSET
    dialog.plain.2=WingDings,SYMBOL_CHARSET,NEED_CONVERTED
    dialog.plain.3=Symbol,SYMBOL_CHARSET,NEED_CONVERTED
    And I've checked the "Tree.font" of UIManager is:
    Tree.font = javax.swing.plaf.FontUIResource[family=dialog,name=Dialog,style=plain,size=12]
    I'm quite sure that my font.properties.ja is correct as all message dialogs in my app. shows Japanese correctly (also using the same dialog font).
    I got stuck. Can anyone please give me some advice? Thanks in advance.

    hello!
    first of all i am sorry that i cannot help u.
    i am a java developer and start work on
    Arabic ( one of the langugae supported by
    unicode) text editing.If u have any knowledge that
    what i should do to display the text in this language
    in a textarea.when i run a code,this display only
    square.
    plz help me.i will be realy thankful to u.
    Qaiser Mehmood
    [email protected]

  • Swing tree updates

    Hi,
    I wrote a swing tree applet that gets notified by a server when to add new nodes to the tree and who the new node's parent is. I can find the parent node and insert the new node into the tree fine. The problem is when my program first starts I receive all the new nodes sequentially about two seconds apart. The tree looks all wacky as the nodes are being added. I'm not sure of the proper method of updating the tree so the new node just appears in the proper location and the tree expands properly. I've tried many different techniques but none produce the desired results. Can someone advise on the correct technique to use to update the tree UI when a new node is inserted in the tree? Also, do you know a web site that contains a swing tree that I can view using my browser. I am having a problem viewing my tree on Solaris using Netscape 6.0 and I'd like to confirm if it is Netscape 6 or not since the tree works as usual using Netscape 4.7.
    Many thanks.

    This example should solve your problem:
         DefaultMutableTreeNode dmtn = _getActionsNode(); // returns a DefaultMutableTreeNode
         DefaultTreeModel dtm = new DefaultTreeModel(dmtn);
         getActionsTree().setModel(dtm); // this is the JTree
    Hope this helps.

  • Cannot find class javax.swing.JOptionPane

    Hello,
    I imported the class
    import javax.swing.JOptionPane;and written as a first line of my code in the form of a .java file.
    but error occurs as : cannot find the class javax.swing.JOptionPane. What should I do.
    Thank you.

    Are you doing something likeimport javax.swing.JOptionPane;
    class Test {
        public static void main(String args[]) {
            JOptionPane.showMessageDialog(null, "Testing",
                    "Testing", JOptionPane.INFORMATION_MESSAGE);
    }Mark

  • Multiple Fonts in a javax.swing.JTextPane

    I am trying to use multiple fonts in a JTextPane, but can only find ways of changing the font family used. Can anyone give me any pointers on how to do this, or a document somewhere that explains, either way with out going into the javax.swing.text.html, javax.swing.text.html.parser or java.awt.font packages.
    Any information that can be provided would be appreciated.
    Thanks,
    Nathan

    Just use SimpleAttributeSet like :
    SimpleAttributeSet defaultSet = new SimpleAttributeSet();
            StyleConstants.setForeground( defaultSet, Color.BLACK );
            StyleConstants.setFontFamily( defaultSet, "Verdana" );
            StyleConstants.setFontSize( defaultSet, 14 );
            SimpleAttributeSet navigationSet = new SimpleAttributeSet();
            StyleConstants.setForeground( navigationSet, new Color(00, 99, 00) );
            StyleConstants.setBold( navigationSet, true );
            StyleConstants.setFontFamily( navigationSet, "Verdana" );
            StyleConstants.setFontSize( navigationSet, 11 );
    // just defiine endPoints what ever you want
    ((DefaultStyledDocument)textPane.getDocument()).setCharacterAttributes(0, endPoint1, defaultSet , true)
    ((DefaultStyledDocument)textPane.getDocument()).setCharacterAttributes(0, endPoint2, navigation , true)

  • Variable textArea not found in class javax.swing.JFrame...

    Making progress on this issue -- but still stuck. Again trying to get the text from a JTextArea on exit:
            frame.addWindowListener
           (new WindowAdapter() {
             public void windowClosing(WindowEvent e)
                System.out.println("Why me???" + frame.textArea.getText());
            });User MARSIAN helped me understand the scope fo the variables and now that has been fixed. Unfortunately I cannot access my variable textArea in the above code. If get this error:
    Error: variable textArea not found in class javax.swing.JFrame
    What am I doing wrong?
    import  java.net.*;
    import  javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import FragImpl.*;
    public class Framework extends WindowAdapter {
        public int numWindows = 0;
        private Point lastLocation = null;
        private int maxX = 500;
        private int maxY = 500;
        JFrame frame;
        public Framework() {
            newFrag();
            Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
            maxX = screenSize.width - 50;
            maxY = screenSize.height - 50;
            makeNewWindow();
        public void makeNewWindow() {
            frame = new MyFrame(this);  //*
            numWindows++;
            System.out.println("Number of windows: " + numWindows);
            if (lastLocation != null) {
                //Move the window over and down 40 pixels.
                lastLocation.translate(40, 40);
                if ((lastLocation.x > maxX) || (lastLocation.y > maxY)) {
                    lastLocation.setLocation(0, 0);
                frame.setLocation(lastLocation);
            } else {
                lastLocation = frame.getLocation();
            System.out.println("Frame location: " + lastLocation);
            frame.setVisible(true);
            frame.addWindowListener
           (new WindowAdapter() {
             public void windowClosing(WindowEvent e)
                System.out.println("Why me???" + frame.textArea.getText());
        //This method must be evoked from the event-dispatching thread.
        public void quit(JFrame frame) {
            if (quitConfirmed(frame)) {
                System.exit(0);
            System.out.println("Quit operation not confirmed; staying alive.");
        private boolean quitConfirmed(JFrame frame) {
            String s1 = "Quit";
            String s2 = "Cancel";
            Object[] options = {s1, s2};
            int n = JOptionPane.showOptionDialog(frame,
                    "Windows are still open.\nDo you really want to quit?",
                    "Quit Confirmation",
                    JOptionPane.YES_NO_OPTION,
                    JOptionPane.QUESTION_MESSAGE,
                    null,
                    options,
                    s1);
            if (n == JOptionPane.YES_OPTION) {
                return true;
            } else {
                return false;
         private void newFrag()
              Frag frag = new FragImpl();
        public static void main(String[] args) {
            Framework framework = new Framework();
    class MyFrame extends JFrame {
        protected Dimension defaultSize = new Dimension(200, 200);
        protected Framework framework = null;
        private Color color = Color.yellow;
        private Container c;
        JTextArea textArea;
        public MyFrame(Framework controller) {
            super("New Frame");
            framework = controller;
            setDefaultCloseOperation(DISPOSE_ON_CLOSE);
            setSize(defaultSize);
            //Create a text area.
            textArea = new JTextArea(
                    "This is an editable JTextArea " +
                    "that has been initialized with the setText method. " +
                    "A text area is a \"plain\" text component, " +
                    "which means that although it can display text " +
                    "in any font, all of the text is in the same font."
            textArea.setFont(new Font("Serif", Font.ITALIC, 16));
            textArea.setLineWrap(true);
            textArea.setWrapStyleWord(true);
            textArea.setBackground ( Color.yellow );
            JScrollPane areaScrollPane = new JScrollPane(textArea);
            //Create the status area.
            JPanel statusPane = new JPanel(new GridLayout(1, 1));
            ImageIcon icoOpen = null;
            URL url = null;
            try
                icoOpen = new ImageIcon("post_it0a.gif"); //("doc04d.gif");
            catch(Exception ex)
                ex.printStackTrace();
                System.exit(1);
            setIconImage(icoOpen.getImage());
            c = getContentPane();
            c.setBackground ( Color.yellow );
            c.add ( areaScrollPane, BorderLayout.CENTER )  ;
            c.add ( statusPane, BorderLayout.SOUTH );
            c.repaint ();
    }

    Yeah!!! It works. Turned out to be a combination of DrKlap's and Martisan's suggestions -- had to change var frame's declaration from JFrame to MyFrame:
        MyFrame frame;Next, created the external class -- but again changed JFrame references to MyFrame:
    public class ShowOnExit extends WindowAdapter {
    //   JFrame aFrame;
       MyFrame aFrame;
       public ShowOnExit(MyFrame f) {
          aFrame = f;
       public void windowClosing(WindowEvent e)
          System.out.println("Why me???" + aFrame.textArea.getText()); // aFrame here not frame !!!
    }This worked. So looks like even though the original code added a WindowListener to 'frame', the listener didn't couldn't access frame's methods unless it was explicitly passed in as a parameter. Let me know if that's wrong.
    Thanks again, all.

  • Import javax.swing.*;

    I start my programm with:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import rechenwerk.Rechenwerk; import rechenwerk.RechenwerkFassade;
    import zahl.Zahl; import zahl.ZahlFassade;
    import oberflaeche.Oberflaeche;
    At "import javax.swing.*" i get the failure message from the compiler:
    Oktalrechner.java:8: Package javax.swing not found in import.
    import javax.swing.*;
    What is wrong? I don't know-please help me.
    I'm using JDK1.2BETA4

    Tell me when you execute java -version, what you are getting?
    Looks like you are suing old JDK.
    Download the latest public release JDK1.4 from http://java.sun.com
    /Sreenivasa Kumar Majji.
    Did somebody help you? I have a similar problem with
    javax.resource... :(
    I start my programm with:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import rechenwerk.Rechenwerk; import
    rechenwerk.RechenwerkFassade;
    import zahl.Zahl; import zahl.ZahlFassade;
    import oberflaeche.Oberflaeche;
    At "import javax.swing.*" i get the failure message
    from the compiler:
    Oktalrechner.java:8: Package javax.swing not foundin
    import.
    import javax.swing.*;
    What is wrong? I don't know-please help me.
    I'm using JDK1.2BETA4

  • Import javax.swing.JOptionPane

    hello
    i just installed j2sdk1.3.1 into my redhat linux7.3, during installation, everything's fine...
    but when i start to compile a program with some import classes...i face the problem :
    cannot find type "javax/swing/JOptionPane
    this is my program :
    import javax.swing.JOptionPane;
    public class Welcome{
    public static void main(String args[])
         JOptionPane.showMessageDialog(null,"Hello");
         System.exit(0);
    can anybody help me with this problem......?...thanks

    type
    java -versionto see which version of the JVM you are running
    you could also try
    which javato see the actuall executable that you are running.

  • Javax.swing.filechooser.FileFilter

    Does anybody know why javax.swing.filechooser.FileFilter is an abstract class
    instead of an interface extending java.io.FileFilter ?
    Gordan

    Yeh - and while we are on the subject, why doesnt it implement java.io.FileFilter so you can use the same filter for the filechooser as you do for listing files? </bangheadagainstwall>

  • UIManager.look and feel buttons or javax.swing

    Hey,
    i want to use the ok, cancel etc. button that you get in a JFileChooser or a JOptionPane.
    Can they be found in the UIManager or in the javax.swing?
    i tried to extract them from the JFileChooser by:
    JFileChooser chooser = new JFileChooser("/"); //Linux
    JPanel mypanel = new JPanel();
    mypanel.add(chooser.getComponentAt(2)); //the button panelthis works, but i don't know how to overwrite the actionlistener to make the buttons listen to my actionlistener.
    thanks in advance
    Grad_

    It returns an int value according to what button was clicked
    http://72.5.124.55/docs/books/tutorial/uiswing/components/filechooser.html
    http://java.sun.com/developer/JDCTechTips/2004/tt0316.html

  • Import javax.swing problems

    hey
    I am new to java and have recently downloaded j2sdk1.4.2_04. I am trying to create a simple graphical application. However, It doesnt seem to import the javax.swing.* libraries. I understand that there is the src.zip in the directory, so I unzipped it but it still doesn't read the package. I read elsewhere on this forum that you should set the path to src.zip. I have tried that and it also doesnt work. My current path is:
    PATH=C:\j2sdk1.4.2_04\lib\src.zip;C:\j2sdk1.4.2_04\bin
    Is there an error in this, or what else should I try? All suggestions greatly appreciated.

    There's no need to set your classpath when importing any of the standard packages that are provided by the JDK. Perhaps you could post a (small) code sample and the compiler error you are getting.

  • Javax.swing.JPanel Help

    my application is sort of a game, i planned on having a JPanel subclass called EventPanel have an instance variable _curPanel.
    curPanel is of type JPanel. In the constructor  I can set curPanel to Other JPanel subclasses. I have another subclass of JPanel called MainScreen, which has the main screen for the game.
    I can set curPanel = new MainScreen(); in the constructor for eventPanel. And it works.
    But if I try to change _curPanel after i've made it, it wont show up. I have a method which signature 
    void setPanel(javax.swing.JPanel panel)
        _curPanel = panel;
        repaint();
    }to change the EventPanel, but nothing changes.
    In the MainScreen class there is a method call
    _eventPanel.setPanel(new NewPlayerPanel());and nothing changes in the code. I have a JTextArea logging info, and in the constructor for NewPlayerPanel at the end it prints a message in my JTextArea. The Panel is being created but not showing up.
    I have also tried creating the panel in an instance variable, setting it to setVisbile(true) and trying again and it doesnt work.

    In other words...
    char c=evt.getKeyChar();c is some character based on this event.
    if(c=='1'){Ok, let's say it is '1'...
    ...> char c2=evt.getKeyChar();Then c2 is also '1'.evt.getKeyChar() isn't going to magically change to be something different than it returned when you called it a few lines up before, so...>if(c2=='a')...this can never be true, given the above.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Javax.swing.text.TableView bug in 1.4 beta 2 ?

    Hi,
    I derived a class from TableView, which worked fine with 1.3, but now causes the following exception as soon as being layouted:
    java.lang.Error: should not happen: class com.lexetius.swing.text.LexTableView
    at javax.swing.text.BoxView.baselineLayout(Unknown Source)
    at javax.swing.text.ParagraphView$Row.layoutMinorAxis(Unknown Source)
    at javax.swing.text.BoxView.setSpanOnAxis(Unknown Source)
    at javax.swing.text.BoxView.layout(Unknown Source)
    at javax.swing.text.BoxView.setSize(Unknown Source)
    at javax.swing.text.BoxView.updateChildSizes(Unknown Source)
    at javax.swing.text.BoxView.setSpanOnAxis(Unknown Source)
    at javax.swing.text.BoxView.layout(Unknown Source)
    at javax.swing.text.FlowView.layout(Unknown Source)
    at javax.swing.text.BoxView.setSize(Unknown Source)
    at javax.swing.text.BoxView.updateChildSizes(Unknown Source)
    at javax.swing.text.BoxView.setSpanOnAxis(Unknown Source)
    at javax.swing.text.BoxView.layout(Unknown Source)
    at javax.swing.text.BoxView.setSize(Unknown Source)
    at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(Unknown Source)
    at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(Unknown Source)
    at javax.swing.JComponent.getPreferredSize(Unknown Source)
    at javax.swing.JEditorPane.getPreferredSize(Unknown Source)
    at javax.swing.ScrollPaneLayout.layoutContainer(Unknown Source)
    at java.awt.Container.layout(Unknown Source)
    at java.awt.Container.doLayout(Unknown Source)
    at java.awt.Container.validateTree(Unknown Source)
    at java.awt.Container.validate(Unknown Source)
    at javax.swing.RepaintManager.validateInvalidComponents(Unknown Source)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknow
    n Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
    any ideas???

    I wrote the com.lexetius.swing.text.LexTableView component myself. It is derived directly from javax.swing.text.TableView and it adds virtually no functionality. I'm quite sure, the problem comes from the TableView class, but I can't verify that directly, since this class is abstract (why is that, anyway??).
    It would certainly help me very much, if anybody had a component, which is also derived from javax.swing.text.TableView and works with the 1.4 beta.

Maybe you are looking for

  • 6 hr battery life on a Droid Eris out of the box

    Hello eveyone. I need help I just changed my blackberry storm for the Droid Eris. Right out of the box and charged the battery lasts 8 hrs tops then it's decresed to 6 hrs. THhis drop was due to my twitter and facebook usage which is very low and som

  • Question about "bluetooth PDA-syn" option?

    HI there, I would just like to ask under system preferences, under bluetooth, under advance, there is an option called "bluetooth pda-sync", in its box, should I check or uncheck this option? what is the option "bluetooth pda-sync" for? what is its u

  • Why "Business System" under "Party"

    Hi, As per my understanding, the "Party" in IB-Config is mainly used for B2B integration and "Service without Party" is mainly used for A2A integration. Under B2B scenario, one won't know the details of the application details of the partner's applic

  • Creating a Tachometer web template in WAD in SAP-3.5x

    I have to create a WAD report in SAP-3.5x where I need to display a tachometer. How to set the fields from the data provider (an existing query in this case) whose data the tachometer would represent.

  • Frames in RoboHelp html

    Is there a way to control the length of the frame opening upon launching RoboHelp from RoboHelp html? I have some longer topics and I'd like the topic to show up in it's entirety.