How can I make a default border for a JWindow?

I have a JWindow object that is created when a button is pressed in a JFrame. I want the JWindow to have the same type of border as the JFrame from which it's created. However, the JWindow is not created automatically with a border as the JFrame is, so I don't know how to set the border abstractly so that whatever border is used for the JFrame, per he default L&F, will also be used for the JWindow.
I tried grabbing the border object from the JFame instance itself, but there is no such field in JFrame or any of its ancestor classes. I looked at UIDefaults, but I have no idea how this class can be used to get what I want. For example, if I use UIDefaults.getBorder(Object obj), what do I specify for the argument?
I'd be happy with an abstract or a concrete solution. That is, either using the default Border for top level containers in the current L&F, or by grabbing an actual Border instance from a JFrame object.
-Mark

Also, I'm curious why you said that JFrame is not a swing component.A Swing component extends JComponent. Basically this means that all the painting of the component is done in Java. You can add Borders to any Swing component. It is called a light weight component. A light weight component cannot exist by itself on the window desktop.
JFrame, JDialog and JWindow are top level components. They can exist on their own on the windows desktop because essentially they are Windows native components. They have been fancied up to make it easy for you to access and add other Swing components to it which is why they are found in the swing package.
A Windows border is not the same thing as a Swing Border and there is no way to access the native windows border and use it in a Swing application (that I know of anyway). Swing Borders are not used in a normal JFrame, the Windows border is used. You can however, turn off the use of Windows decorations and use Swing painted decorations. Read the tutorial on [url http://java.sun.com/docs/books/tutorial/uiswing/components/frame.html#setDefaultLookAndFeelDecorated]Specifying Windows Decorations. However, this doesn't really help you with your Border problem. If you look at the source code for the FrameBorder, you will find that the "blue" color of the Border is only painted for "active" windows and a JWindow can never be the active window, only the parent JFrame or JDialog is considered active.
Here is a simple program for you to play around with:
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
public class FrameDecorated
     public static void main(String[] args)
          JFrame.setDefaultLookAndFeelDecorated(true);
          JFrame frame = new JFrame();
          frame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
          frame.setSize(300, 300);
          frame.setVisible(true);
          Border border = frame.getRootPane().getBorder();
//          Border border = UIManager.getBorder( "RootPane.frameBorder" );
          System.out.println( border );
          JWindow window = new JWindow(frame);
          JPanel contentPane = (JPanel)window.getContentPane();
          contentPane.add(new JTextField(), BorderLayout.NORTH);
          contentPane.setBorder( border );
          window.setSize(300, 300);
          window.setLocationRelativeTo( null );
          window.setVisible( true );
          System.out.println("Window:" + window);
          Window ancestor = SwingUtilities.getWindowAncestor(contentPane);
          System.out.println("Ancestor:" + ancestor);
          System.out.println(ancestor.isActive());
          System.out.println(frame.isActive());
}

Similar Messages

  • How can I make the default action for Real Player (etc.) to be not to play?

    While browsing with Mozilla, I would prefer not to have videos play unless I start the video. This goes for commercials or any video.
    Is there a preference to set this? If not, can you make one that does that?

    By default plugins.click_to_play should be default set to true. However, please also contact Apple support to make sure that this is expected.
    If there is not an option to override this, it is also possible to set the preference in about:plugins:
    *[https://support.mozilla.org/en-US/kb/why-do-i-have-click-activate-plugins Why do I have to click to activate plugins? ]

  • How can I make Firefox default browser for links in Earthlink emails? I have already verified that Firefox is my default browser, but clicking on links usually opens IE rather than Firefox.

    Basically I have verified that Firefox is my default browser and it works great. Earthlink is my default email program. About 70% of the time when I click on a link in an Earthlink email it opens with Firefox, but the other 30% of the time it opens with IE, which I don't want to happen. Is there any way to fix this?

    Basically I have verified that Firefox is my default browser and it works great. Earthlink is my default email program. About 70% of the time when I click on a link in an Earthlink email it opens with Firefox, but the other 30% of the time it opens with IE, which I don't want to happen. Is there any way to fix this?

  • How can I change the default application for a content type?

    Running a version of Linux, the default application for PDF files is "Use Document Viewer (default)", which appears to be /usr/bin/evince. I'd much prefer to use /usr/bin/okular; how can I change the default. This question is NOT about how to change the function that is automatically applied when I access a link, in this case "Preview in Firefox", but rather to the default application that I can select when I download a file being viewed in Firefox's previewer.

    This is real progress, a solution to the problem as posted. The command:
    xdg-mime default okularApplication_pdf.desktop application/pdf
    makes okular the default.
    However when I added okular to the choices for applications in:
    * Edit>Preferences>Applications>PDF
    the popup box that appears when I click Download on the preview page changed. The pulldown menu that appears next to "Open with" used to have 3 entries:
    # Document Viewer (default)
    # Acroread
    # Other
    Now it has only 2:
    # Okular (Default)
    # Other
    I'd like it to read
    # Okular (Default)
    # Acroread
    # Other
    How can I control the entries in this pulldown list?
    Also, how can I make the default choice in the popup box be
    * Open With <whatever> , rather than
    * Save File ?

  • How can I make a intro page for my website, then after the intro has run make the page automatically change to my we site home screen

    how can I make a intro page for my website, then after the intro has run make the page automatically change to my website's home screen

    You can do this using a meta refresh but the problem is you have to add it to the html file for the page very time you publish changes.
    A better way is to create a splash page and upload it to the server outside of the folder produced by iWeb. Example HERE.
    The meta refresh is added to the head section of the html file...
    <meta http-equiv="refresh" content="32;url=http://www.domain.about.com/Page-Name.html">
    The delay time in seconds is marked in blue and the URL to the redirect page is in red.

  • How can I make a bootable disk for Mountain Lion?

    How can I make a bootable disk for Mountain Lion?

    Make Your Own Mountain/Lion Installer
    1. After downloading Mountain/Lion you must first save the Install Mac OS X Mountain/Lion application. After Mountain/Lion downloads DO NOT click on the Install button. Go to your Applications folder and make a copy of the Mountain/Lion installer. Move the copy into your Downloads folder. Now you can click on the Install button. You must do this because the installer deletes itself automatically when it finishes installing.
    2. Get a USB flash drive that is at least 8 GBs. Prep this flash drive as follows:
    Open Disk Utility in your Utilities folder.
    After DU loads select your flash drive (this is the entry with the mfgr.'s ID and size) from the left side list. Click on the Partition tab in the DU main window.
    Under the Volume Scheme heading set the number of partitions from the drop down menu to one. Set the format type to Mac OS Extended (Journaled.) Click on the Options button, set the partition scheme to GUID then click on the OK button. Click on the Partition button and wait until the process has completed.
    Select the volume you just created (this is the sub-entry under the drive entry) from the left side list. Click on the Erase tab in the DU main window.
    Set the format type to Mac OS Extended (Journaled.) Click on the Options button, check the button for Zero Data and click on OK to return to the Erase window.
    Click on the Erase button. The format process can take up to an hour depending upon the flash drive size.
    3. Locate the saved Mountain/Lion installer in your Downloads folder. CTRL- or RIGHT-click on the installer and select Show Package Contents from the contextual menu. Double-click on the Contents folder to open it. Double-click on the SharedSupport folder. In this folder you will see a disc image named InstallESD.dmg.
    4. Plug in your freshly prepared USB flash drive. You are going to clone the content of the InstallESD.dmg disc image to the flash drive as follows:
    Double-click on the InstallESD.dmg file to mount it on your Desktop.
    Open Disk Utility.
    Select the USB flash drive from the left side list.
    Click on the Restore tab in the DU main window.
    Select the USB flash drive volume from the left side list and drag it to the Destination entry field.
    Drag the mounted disc icon from the Desktop into the Source entry field.
    Double-check you got it right, then click on the Restore button.
    When the clone is completed you have a fully bootable installer that you can use without having to re-download Mountain/Lion.
    Note: The term Mountain/Lion used above means Lion or Mountain Lion.

  • How can I make a "property node" for a VI?

    Hello!
    If I add a boolean button on the FP then I am able to make a property node for that button in the Block Diagram. But how can I make a property node for a VI? I have several VI:s an that together is one program. What I need to do is to verify what kind of VI some of my VI:s is. I need to verify if it is .exe or .vi-file, and if it is .exe then I want to disable run, abort, run continuously bottons otherwise not. I have hard that this is possible to do programmaticaly but I can´t figure out how. I am aware that I could do that manually in the File->vi properties->customize->windows appearance but theese choises makes it last forever.
    I want to be able to stop and run and everything if it is a .vi file, but if it is .exe-file then all those buttons should be disabled.
    Anyone have an example on this?
    In an other message at this Forum I read "You can use the `Front Panel Window. Allow Runtime PopUp`" property to disable run-time shortcuts menues programmaticaly, but still I dont know how to create this property node.
    /Amir

    You really shouldn't open a new thread. If you don't understand something, ask and we will explain it.
    Like I said in the other thread, you can check if you are running in LV or an EXE by using the Application>>Kind property. To get it, place a property node (from the Application Control palette) on the diagram, click it and find the property.
    To set the properties for the VI, place another property node, right click it and select Select Class>>VI Server>>VI. You should have the properties you want under Front Panel Window.
    To learn more about LabVIEW, I suggest you try searching this site and google for LabVIEW tutorials. Here and here are a couple you can start with. You can also contact your local NI office and join one of their courses.
    In addition, I suggest you read the LabVIEW style guide and the LabVIEW user manual (Help>>Search the LabVIEW Bookshelf). I believe chapter 17 of the user manual explains about programmatic control of VIs.
    Try to take over the world!

  • How can I change the default setting for downloading photos from email?

    How can I change the default setting for downloading photos from emails I receive?  It shows the default as Photoshop Elements 4.0 and is not supported by this system.  That was my last computer!!
    Thanks,
    Sheila

    That has nothing to do with styles nor Pages, it is a System/Printer Driver setting.
    You can experiment to see if the Printer Settings stick with your document, but in the past this has not worked.
    Peter

  • Realtek network card seems to be disappeared. how can i make it visible again for the OS?

    i can't access my LAN card. somehow it is disappeared. how can i make it visible again for the OS? my OS is windows 7. thanks very much for your help

    right click on the button bar, then select "customize toolbar", drag any button you like into the toolbar and you're done!
    Diego

  • How can i make Apple id free for downloading apps

    how can i make free apple ID for downloading apps?

    No thats false thers an other way go to App Store ( on iphone or itunes) then choose any free app click download the App Store will ask you for your apple id the click in this dialog on create new apple id then you should select by Credit Card None, thats a trick, you don't need a credit or itunes card
    PS: Sorry for my bad english

  • How can I make lining number format for opentype fonts in Acrobat?

    How can I make lining number format for opentype fonts in Acrobat?

    I bought the Max OT font. I want the numbers on the right to look like on the left. I could do that in word, but not in adobe acrobat.

  • How can I make a recovery disk for an imac 24 "  early 2008 to April 2009 or connect via thunderbolt to another imac

    How can I make a recovery disk for an imac 24 "  early 2008 to April 2009 or connect via thunderbolt to another imacimac 24 "   or connect via thunderbolt to another imac
    ann

    You will only know about the hard drive when you try to access it in TDM from your other computer. If you cannot boot into TDM mode or if the drive does not appear on the new computer's Desktop then it is likely bad.
    What you are thinking about as a recovery disk is the Recovery HD normally created when you install Lion or later on the computer. You boot from it as follows:
    Boot Using Command+R keys:
      1. Restart the computer.
      2. Immediately after the chime press and hold down the
          "COMMAND" and the "R" keys together.
      3. Release the keys when the Utilities Menu appears.

  • How can I make my movies pro for mac work?

    How can I make my movies pro for mac work?
    I have downloaded it i click on the icon but I cant make it work

    Delete the app using this free utlity > Download AppCleaner for Mac
    Then re download the app using the same Apple ID it was originally purchased from. You won't be charged again.
    How to re download apps from the Mac App Store:
    Open the App Store. From the menu bar click Store > Sign In
    Click Purchases from the top of the App Store window.
    Select which apps you want to re download. Then right or control click where you see Installed  then click Install.
    If you still have problems, I located the app developer's website. Contact details for help here >   http://www.mymovies.dk/about.aspx

  • How can I make more email postboxes for iPad2?

    How can I make more email maps for the iPad2?

    If you are on iOS 5 as your tagline suggests and it's an IMAP type account then you should get an Edit button at the top of the list of folders that you currently have on your email account. If it's a POP type account then you won't get the Edit button.

  • How can I set a default file for JFileChooser

    Hi. I am developing a p2p chat application and I have to unrelated questions.
    1. How can I set a default file name for JFileChooser, to save a completly new file?
    2. I have a JTextArea that I append recieved messages. But when a message is appended, the whole desktop screen refreshes. How can I prevent that?
    Hope I was clear. Thanks in advance.

    Thank you for the first answer, it solved my problem. Here is the code for 2nd question, I've trimmed it a lot, hope I didn't cut off any critical code
    public class ConversationWindow extends JFrame implements KeyListener,MessageArrivedListener,ActionListener,IOnlineUsrComp{
         private TextArea incomingArea;
         private Conversation conversation;
         private JTextField outgoingField;
         private JScrollPane incomingTextScroller;
         private String userName;
         private JButton inviteButton;
         private JButton sendFileButton;
         private JFileChooser fileChooser;
         private FontMetrics fontMetrics;
         private HashMap<String, String> onlineUserMap;
         public void MessageArrived(MessageArrivedEvent e) {
              showMessage(e.getArrivedMessage());
         public ConversationWindow(Conversation conversation)
              this.conversation=conversation;
              userName=User.getInstance().getUserName();
              sendFileButton=new JButton("Dosya G�nder");
              sendFileButton.addActionListener(this);
              inviteButton=new JButton("Davet et");
              inviteButton.addActionListener(this);
              incomingArea=new TextArea();
              incomingArea.setEditable(false);
              incomingArea.setFont(new Font("Verdana",Font.PLAIN,12));
              fontMetrics =incomingArea.getFontMetrics(incomingArea.getFont());
              incomingArea.setPreferredSize(new Dimension(300,300));
              outgoingField=new JTextField();
              outgoingField.addKeyListener(this);
              incomingTextScroller=new JScrollPane(incomingArea);          
              JPanel panel=new JPanel();
              panel.setLayout(new BoxLayout(panel,BoxLayout.PAGE_AXIS));
              panel.add(inviteButton);
              panel.add(sendFileButton);
              panel.add(incomingTextScroller);
              panel.add(outgoingField);
              add(panel);
              pack();
              setTitle("Ki&#351;iler:");
              setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
              setLocationRelativeTo(null);
              addWindowListener(new CloseAdapter());
         //Sends the message to other end
         public void keyPressed(KeyEvent e) {
              if(e.getKeyCode()==KeyEvent.VK_ENTER && e.getSource()==outgoingField)
                   String message=outgoingField.getText();
                   if(message.equals("")) return;
                   showMessage(userName+": "+message);
                   conversation.sendMessages(userName+": "+message);
                   outgoingField.setText("");     
         //Displays the recieved message
         public void showMessage(String message)
              if(fontMetrics.stringWidth(message)>incomingArea.getWidth())
                   int mid=message.length()/2;
                   StringBuilder sbld=new StringBuilder(message);
                   for(;mid<message.length();mid++)
                        if(message.charAt(mid)==' ')
                             sbld.setCharAt(mid, '\n');
                             message=sbld.toString();
                             break;
              incomingArea.append("\n"+message);
    }

Maybe you are looking for