Always On Top Internal Frames

Dear Friends,
How we set Always on Top option for Internal Frames.
Or User can't Do anything without closing that dialog(frame).
Thankx.

no, an internal frame can not be on top of anything that doesn't exist inside that frame.
Maybe they can be forced on top of other content of the same frame, but that's as far as it goes.

Similar Messages

  • How to keep a image lways on top of internal frames?

    Hello.
    I have a main frame with sevral internal frames. I need to put a image on this
    window that can move this image remotely.
    How to keep this image always on top of these internal frames?
    Is there any panel that can put on top of these internal frame?
    Many thanks.

    Thanks for you reply and sorry for my break English.
    I mean I need a image that moving on a frame which has internal Frames.
    When the image meet a internal frame while it's moving, this image will go under of the internal frame , so that we can not see the image any more.
    What i want to do is that let the image always keep on top of the window,
    even if it meet a internal frame.
    Just imagine the windows cursor. A cursor is always visible no matter where is it.

  • How to Create Always on Top Window OR Frame

    hi i m hasan, i m using windows 98, and i want to know that how to create a Window OR Frame, which should remain always on top. In windows 98 by pressing windows+D key hides all windows and dailog boxes. But I want it should remain always on top even if some one press windows+D key it should not be minimized.

    Try this code. It should be work on all windows which are inherited from java.awt.Window
    * Call this from class consructor
    public void initialize() {
    TopThread top = new TopThread();
    top.start();
    * Keep JWindow on top (inner class)
    class TopThread extends Thread {
    public void run() {
    while(true) {
    toFront();
    * Let 10 milliseconds for other code to execute
    try {
    Thread.sleep(10);
    catch(Exception e) {
    // Nothing to do

  • Always on Top Frame

    HI, I have search a lot about Always on Top Frame, but couldn't found the solution of my problem.
    My application has a PropertyWindow, the problem is, I want my PropertyWindow always on Top. Please suggest me which container should I use, because If I use JFrame as a PropertyWindow, another frame is created and windows toolbar have two windows.
    If I use JPanel, I dont found the functionalities like WindowClosing, Settitle etc etc.
    Please help me to get rid of this annoying problem. I want exactly something like JBuilder or Photoshop functionality where property windows are always on top and also seperate with the application.

    But I got this error while using 1.5
    "ConnectionPool.java": cannot access java.lang.Object,bad class file: C:\Program Files\Java\j2sdk1.5.0\jre\lib\rt.jar\java\lang\Object.class,class file has wrong version 49.0, should be 48.0,Please remove or make sure it appears in the correct subdirectory of the classpath. at line 13, column 11
    "DBIdentifier.java": cannot access java.lang.String,bad class file: C:\Program Files\Java\j2sdk1.5.0\jre\lib\rt.jar\java\lang\String.class,class file has wrong version 49.0, should be 48.0,Please remove or make sure it appears in the correct subdirectory of the classpath. at line 12, column 11
    Everything works fine in 1.4
    Please Help
    Thanks

  • Frame (popup )always on top

    Hi,
    i want to know how can i keep my frame always on top from other frames.
    thanks in advance,
    kimos

    Always check the JDK first before asking trivial questions.
    setAlwaysOnTop(true)Ted.

  • Frame be always on top

    Hi
    Can I create a Frame with these properties?
    1 - Be always on the top of the desktop even on the taskbar.
    2 - Disable all desk top mnemonics such as F1, F2, F12, Alt, windows start and so on.
    Thanks in advance.

    Loads of discusson on Always on Top Frame.
    http://onesearch.sun.com/search/developers/index.jsp?col=devforums&qp_name=Swing&qp=forum%3A57&qt=Always+on+Top+Frame

  • How to have Always on top

    Am using a JInternalFrame to have my tools. i open new JInternalFrames with canvas for painting with tools from my first JInternalFrame. Now my problem is i want to have my InternalFrame with tools to be always in front, so that i can select tools. can i make that InternalFrame as always on top.. Or else suggest me some other option to obtain such scenario..

    Well a JDesktopPane is a layered pane. This means that the components added to it have an associated z coordinate. You can add the floating internal frame at a higher layer then the other internal frames.
    myDesktopPane.add(myToolbarFrame,JLayeredPane.PALETTE_LAYER,0);

  • Custom internal frames

    Hello,
    I have written some custom internal frames, along with their UI's, title panes, and desktop icons. Everything seems to work fine when I'm in JBuilder and I use the "run" command, but when I compile the program and run it as a batch file, my internal frames appear as gray boxes that can't be moved or resized.
    package KComponent;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    import Theme.*;
    import java.io.*;
    import javax.swing.border.*;
    public class KInternalFrame extends JInternalFrame {
      private JLabel titleLabel;
      private String title;
      public static Color titleColor = Color.white;
      public static Color titleBarColor = Theme.DARK;
      private KButton maximize, minimize, normalize;
      private static final String PATH = "pics" + File.separator;
      public KInternalFrame(String title) {
        super(title, true, false, true, true);
        this.title = title;
        this.titleColor = titleColor;
        this.titleBarColor = titleBarColor;
        //getContentPane().add(content, BorderLayout.CENTER);
        //setContentPane(content);
        //LineBorder line = new LineBorder(titleBarColor, 2);
        //setBorder(line);
        setBorder(BorderFactory.createRaisedBevelBorder());
        this.getDesktopIcon().setUI(new KDesktopIconUI(title, titleBarColor, titleColor));
        setUI(new KInternalFrameUI(this));
    package KComponent;
    import javax.swing.plaf.basic.*;
    import javax.swing.*;
    import java.awt.*;
    import Theme.*;
    public class KInternalFrameUI extends BasicInternalFrameUI {
      public KInternalFrameUI(JInternalFrame frame) {
        super(frame);
      protected void installDefaults(){
          Icon frameIcon = frame.getFrameIcon();
          frame.setFrameIcon(null);
          /* enable the content pane to inherit background color from its
             parent by setting its background color to null. Fixes bug#
             4268949. */
          JComponent contentPane = (JComponent) frame.getContentPane();
          if (contentPane != null) {
            Color bg = contentPane.getBackground();
          else {
            Color bg = null;
          //LookAndFeel.installBorder(frame, "InternalFrame.border");
      protected JComponent createNorthPane(JInternalFrame w) {
        titlePane = new KInternalFrameTitlePane(w, w.getTitle(), Theme.DARK, Color.white);
        return titlePane;
    package KComponent;
    import javax.swing.plaf.basic.*;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.File;
    import Theme.*;
    public class KInternalFrameTitlePane extends BasicInternalFrameTitlePane implements ActionListener {
      private JInternalFrame frame;
      private final String PATH = "pics" + File.separator;
      private KButton maxButton;
      private KButton minButton;
      private KButton normButton;
      private JLabel titleLabel;
      private File maxIcon = new File(PATH, "maximize.gif");
      private File maxOver = new File(PATH, "maximize_rollover.gif");
      private File minIcon = new File(PATH, "minimize.gif");
      private File minOver = new File(PATH, "minimize_rollover.gif");
      private File norIcon = new File(PATH, "normal.gif");
      private File norOver = new File(PATH, "normal_rollover.gif");
      String title;
      Color activeTitle;
      Color activeTitleText;
      Color inactiveTitle;
      Color inactiveTitleText;
      public KInternalFrameTitlePane(JInternalFrame frame, String title, Color activeTitle, Color activeTitleText) {
        super(frame);
        this.frame = frame;
        this.title = title;
        this.activeTitle = activeTitle;
        this.activeTitleText = activeTitleText;
        //this.inactiveTitle = inactiveTitle;
        //this.inactiveTitleText = inactiveTitleText;
        installTitlePane();
      public void installTitlePane() {
        titleLabel = new JLabel(" " + title + " ");
        titleLabel.setFont(new Font("verdana", Font.PLAIN, 11));
        titleLabel.setForeground(activeTitleText);
        titleLabel.setBorder(null);
        titleLabel.setOpaque(false);
        File icon = new File(PATH, "maximize.gif");
        File rollover = new File(PATH, "maximize_rollover.gif");
        maxButton = new KButton(icon, rollover, rollover, false);
        maxButton.setOpaque(false);
        maxButton.setToolTipText("Maximize window");
        maxButton.setActionCommand("maximize");
        //maxButton.addActionListener(this);
        icon = new File(PATH, "minimize.gif");
        rollover = new File(PATH, "minimize_rollover.gif");
        minButton = new KButton(icon, rollover, rollover, false);
        minButton.setOpaque(false);
        minButton.setToolTipText("Minimize window");
        minButton.setActionCommand("minimize");
        //minButton.addActionListener(this);
        icon = new File(PATH, "normal.gif");
        rollover = new File(PATH, "normal_rollover.gif");
        normButton = new KButton(icon, rollover, rollover, false);
        normButton.setOpaque(false);
        normButton.setToolTipText("Normalize window");
        normButton.setActionCommand("normal");
        //normButton.addActionListener(this);
        JPanel buttonHeader = new JPanel(new GridLayout(1, 3, 0, 0));
        buttonHeader.setOpaque(false);
        buttonHeader.add(minButton);
        buttonHeader.add(normButton);
        buttonHeader.add(maxButton);
        JPanel titlePane = new JPanel(new BorderLayout());
        titlePane.setBackground(activeTitle);
        titlePane.add(titleLabel, BorderLayout.WEST);
        titlePane.add(buttonHeader, BorderLayout.EAST);
        setBackground(activeTitle);
        setLayout(new BorderLayout());
        //add(titleLabel, BorderLayout.WEST);
        //add(buttonHeader, BorderLayout.EAST);
        add(titlePane, BorderLayout.CENTER);
        //installDefaults();
        createActions();
        enableActions();
        //createActionMap();
        assembleSystemMenu();
        createButtons();
      protected void createButtons() {
          minButton.addActionListener(iconifyAction);
          minButton.setActionCommand("minimize");
          minButton.addActionListener(this);
          maxButton.addActionListener(maximizeAction);
          maxButton.setActionCommand("maximize");
          maxButton.addActionListener(this);
          normButton.addActionListener(restoreAction);
          normButton.setActionCommand("normal");
          normButton.addActionListener(this);
          //setButtonIcons();
      public void setButtonIcons() {}
      public void actionPerformed(ActionEvent e) {
        String command = e.getActionCommand();
        if (command.equals("maximize")) {
          maxButton.setEnabled(false);
          minButton.setEnabled(true);
        else if (command.equals("minimize")) {
          //maxButton.setEnabled(true);
          //minButton.setEnabled(false);
        else if (command.equals("normal")) {
          maxButton.setEnabled(true);
          minButton.setEnabled(true);
    package KComponent;
    import javax.swing.plaf.basic.BasicDesktopIconUI;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.File;
    import javax.swing.border.*;
    public class KDesktopIconUI extends BasicDesktopIconUI {
      private final String PATH = "pics" + File.separator;
      private File norIcon = new File(PATH, "normal.gif");
      private File norOver = new File(PATH, "normal_rollover.gif");
      JComponent iconPane;
      String title;
      Color activeTitle;
      Color activeTitleText;
      KButton norButton;
      MouseInputListener mouseInputListener;
      public KDesktopIconUI(String title, Color activeTitle, Color activeTitleText) {
        this.title = title;
        this.activeTitle = activeTitle;
        this.activeTitleText = activeTitleText;
      protected void installComponents() {
          frame = desktopIcon.getInternalFrame();
          norButton = new KButton(norIcon, norOver, norOver, false);
          norButton.setOpaque(true);
          norButton.setBackground(activeTitle);
          iconPane = new JPanel(new BorderLayout());
          JLabel jlTitle = new JLabel(" " + title + " ");
          jlTitle.setFont(new Font("verdana", Font.PLAIN, 11));
          jlTitle.setForeground(activeTitleText);
          jlTitle.setBackground(activeTitle);
          jlTitle.setOpaque(true);
          iconPane.add(jlTitle, BorderLayout.CENTER);
          iconPane.add(norButton, BorderLayout.EAST);
          desktopIcon.setLayout(new BorderLayout());
          desktopIcon.add(iconPane, BorderLayout.CENTER);
          desktopIcon.setBackground(activeTitle);
          desktopIcon.setForeground(activeTitleText);
          iconPane.setBorder(BorderFactory.createRaisedBevelBorder());
          desktopIcon.setBorder(null);
      protected void installListeners() {
          mouseInputListener = createMouseInputListener();
          desktopIcon.addMouseMotionListener(mouseInputListener);
          desktopIcon.addMouseListener(mouseInputListener);
          norButton.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
              deiconize();
      public Dimension getMinimumSize(JComponent c) {
          return iconPane.getMinimumSize();
      public Dimension getMaximumSize(JComponent c){
          return iconPane.getMaximumSize();
      public Dimension getPreferredSize(JComponent c) {
          JInternalFrame iframe = desktopIcon.getInternalFrame();
          Border border = iframe.getBorder();
          int w2 = 157;
          int h2 = 18;
          //if(border != null)
              //h2 += border.getBorderInsets(iframe).bottom +
                //    border.getBorderInsets(iframe).top;
          return new Dimension(w2, h2);
      protected void uninstallComponents() {
          desktopIcon.setLayout(null);
          desktopIcon.remove(iconPane);
    package KComponent;
    import javax.swing.*;
    import java.awt.*;
    import Theme.*;
    import javax.swing.plaf.metal.*;
    public class KDesktop extends JDesktopPane {
      ImageIcon icon;
      boolean isWatermark;
      JInternalFrame gb, proj, stat, cal;
      boolean gbOpen, projOpen, statOpen, calOpen;
      public KDesktop(boolean isWatermark) {
        this.isWatermark = isWatermark;
        icon = Theme.getBackground();
        setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
      public void setBackgroundImage(ImageIcon i) {
        icon = i;
      public ImageIcon getBackgroundImage() {
        return icon;
      public void paintComponent(Graphics g) {
        super.paintComponent(g);
        if (!isWatermark) {
          if (getWidth() > icon.getIconWidth() || getHeight() > icon.getIconHeight()){
            g.drawImage(icon.getImage(), 0,0, getWidth(), getHeight(), null);
          else {
            if (getProportionalHeight(getWidth()) < getHeight()) {
              g.drawImage(icon.getImage(), 0, 0,
                          getProportionalWidth(getHeight()), getHeight(), null);
            else
              g.drawImage(icon.getImage(), 0,0,
                          getWidth(), getProportionalHeight(getWidth()), null);
        else {
          int w = icon.getIconWidth();
          int h = icon.getIconHeight();
          if (w == '\u0000' || h == '\u0000') {
            super.paint(g);
          else {
            int currX = 0;
            int currY = 0;
            boolean keepPainting = true;
            while (keepPainting) {
              if (currX < (getWidth()+w/2)) {
                g.drawImage(icon.getImage(), currX, currY, null);
                currX += w;
              else if (currY < (getHeight()+h/2)) {
                currX = 0;
                currY += h;
                g.drawImage(icon.getImage(), currX, currY, null);
              else keepPainting = false;
      public int getProportionalHeight(int width) {
        double percentage = (double)width/icon.getIconWidth();
        return (int)(percentage*icon.getIconHeight());
      public int getProportionalWidth(int height) {
        double percentage = (double)height/icon.getIconHeight();
        return (int)(percentage*icon.getIconWidth());
    }Any ideas? I don't see how everything could work fine within the JBuilder environment and then screw up when I compile the code.
    Thanks for any help.

    And this is how I call up the UI from my main function:
    displayFrame.setUI(new MyInternalFrameUI(intFrame));Thanks!

  • "Show Desktop" bug forces any program windows to be stuck "Always-on-top"

    What I found under Windows 7, when you use the "Show Desktop" feature (I prefer the ⊞ Win + D shortcut) and then bring all windows back by using it again, some windows behave as if they're glued to the front of the z-order. What this means is, say, I have windows
    A B and C open, with focus on A, hit ⊞ Win +D twice, and now it may happen that if I then want to switch to B or C, either by Alt+Tab or by selecting them on the taskbar, the taskbar shows the highlight, but A stays visible (and usable, it's not just a rendering
    issue) in the foreground.
    Imagine the following situations, all three windows cascading and overlapping:
    A (focus)
    B
    C
    -> ⊞ Win + D
    Desktop (focus)
    -> ⊞ Win + D
    A (focus)
    B
    C
    -> click C on taskbar
    A
    C (focus)
    B
    -> click B on taskbar
    A
    B (focus)
    C
    And so on. Focus means actual input focus, i.e. in second situation, any keyboard typing is sent to window B while window A is in the foreground.
    It does not matter what kind of application; in my current case an instance of Outlook and an instance of Explorer is stuck, while a second instance of Explorer and an instance of Firefox behave normally. This should show that this problem can occur even between
    multiple instances of the same application, and that there are no fancy applications involved that like to pretend they are the most important program and internally force "always on top".
    Showing and unshowing the desktop again doesn't help; in the worst case another window might end up with the "glued to the top of the z-order" too. Between those, I can easily switch, but in order to get a window which still behaves normally on top, I have
    to manually minimize the offending windows.
    The only cure seems to close the offending windows so far, I've not found anything else that helps.
    Could it be that Windows 7 has a bug that can force an ALWAYS_ON_TOP flag
    onto some windows when restoring from "Show Desktop", or am I doing something wrong?
    More information from another user:
    I use win+d. Issue easy to replicate, Win7-64bit-Ultimate.
    The affected windows (any program) seem to be placed into a separate "Z" group. You can place multiple/many windows into this always-on-top state, those in the affected state will function normally in relation to each other with the exception that: - The group
    as a whole is always-on-top of any non-affected window - The whole group is on top of the taskbar. - The whole group does not respond to (context on taskbar) "cascade windows" or similar commands.
    The fact that the affected windows are on top of the taskbar and otherwise function as "special windows" shows that windows 7 has a hidden "feature" of always-on-top that gets applied with Win+D. The feature appears to place windows in a super window state
    that is on top of the taskbar. The normal group remaining behind the taskbar. (When you click the start menu or context menu of the taskbar, the start menu/taskbar comes to the foreground of the always-on-top group, however this does not revert the affected
    windows, only a temporary takeover until you switch to something other than the start menu/taskbar)
    This is key to finding an answer. How do we get windows to unassign the special status or not do the assignment in the first place?

    It appeared to have cleared by closing all windows and restarting. Initially I could not reproduce the error, then after opening all my working windows, I did indeed reproduce it on any window.
    I almost think it could be initialized with something to do with multiple windows of Chrome, and then the show desktop problem will crop up once one window has it. This was because: After messing around some more with a chrome session saver (session buddy)
    and restoring sessions and getting the super state, I restored and closed the window I was in and now I am again at a place where I can not reproduce the error, even in my "work environment" with some 35 chrome tabs in two windows, plus other programs, file
    locations, remote desktops and a second chrome profile with another dozen tabs.
    So, back to square one with finding the actual instigator of the super state phenomenon.
    Once you actually have the super sate issue, the following will reproduce:
    Ok, I am doing this as I type it:
    Open chrome (to view this website), then Notepad, then Calculator, (could be any windows, but for the purpose of demonstration, follow along with me)
    The windows should function normally, overlap your windows so that you can see the edge of all windows and the Z-order is (from front to back):the browser on top, then the calculator, then Notepad (you should be able to see part of the background windows).
    Now, with the browser on top, press win+d, then win+d again.
    Click on Calculator, then your browser, your browser is now stuck in the foreground. Clicking on notepad will bring the focus to notepad, and it will be in front of the calculator, yet it will stay behind the browser, as your browser is in "super state". (many
    arrangements of switching focus after returning from win+d will create the problem, with the exeption of clicking the desktop, I also noticed that I could not get calculator into super state unless it overlapped my chrome browser).
    Again, this does not seem to work until at least one of your windows is affected. We do not know how to get the initial window, only subsequent ones.
    I will post back if I find anything else.
    Let me know if there is anything that develops.

  • JInternalframe always on top instead of overlapping

    Hello guys,
    I have some JInternalFrames but one window paints its content above all, even overlapping frames. The code looks like this:
    package visnav.bachelor.gallery;
    import java.awt.BorderLayout;
    import java.awt.Component;
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.Insets;
    import java.awt.ScrollPane;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Vector;
    import java.lang.Math;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.UIManager;
    import javax.swing.SwingUtilities;
    import javax.swing.border.EtchedBorder;
    import visnav.bachelor.DataLoader;
    import visnav.bachelor.preview.PreviewMap_Ext;
    import visnav.common.Config;
    import visnav.common.DBListener;
    import visnav.common.Options;
    import visnav.common.Photo;
    * The class Gallery adds a window in which all selected Photos (=their
    * thumbnails) can be seen.
    * @author Florian Kratschmann
    public class Gallery extends ScrollPane implements DBListener {
         private static Vector<Photo> selectedPhotos;
         private static Gallery instance;
         public JPanel content = new JPanel(new ModifiedFlowLayout(
                   ModifiedFlowLayout.LEFT, 6, 6));
         public String filename = "";
          * Constructor which creates a new Gallery object.
         public Gallery() {
              selectedPhotos = DataLoader.getInstance().getSelectedPhotos();
              this.updateGUI(selectedPhotos);
         public static Gallery getInstance() {
              if (instance == null)
                   instance = new Gallery();
              return instance;
         public void collectionChanged() {
              selectedPhotos = DataLoader.getInstance().getSelectedPhotos();
              this.updateGUI(selectedPhotos);
         public void selectionChanged() {
              selectedPhotos = DataLoader.getInstance().getSelectedPhotos();
              this.updateGUI(selectedPhotos);
         public void valueChanged() {
              selectedPhotos = DataLoader.getInstance().getSelectedPhotos();
              this.updateGUI(selectedPhotos);
         public void updateGUI(Vector<Photo> data) {
              content.removeAll();
              removeAll();
              for (int i = 0; selectedPhotos.size() > i; i++) {
                   filename = Gallery_Ext.getFileName(selectedPhotos.get(i)
                             .getFileLocation());
                   final int j = i;
                   ImageIcon icon = (new ImageIcon(selectedPhotos.get(i)
                             .getThumbLocation()));
                   if (filename.length() > 15) {
                        filename = filename.substring(0, 15) + "...";
                   JButton thumb = new JButton("<html><p align=\"center\">" + filename
                             + "<br>[" + (i + 1) + "/" + selectedPhotos.size()
                             + "]<br></p></html>", icon);
                   thumb.setContentAreaFilled(false);
                   thumb.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                             Gallery_Ext.openMIME(selectedPhotos.get(j)
                                       .getFileLocation());
                   thumb.setVerticalTextPosition(JLabel.BOTTOM);
                   thumb.setHorizontalTextPosition(JLabel.CENTER);
                   thumb.setBorder(new EtchedBorder());
                   thumb.setPreferredSize(new Dimension(140, 140));
                   content.add(thumb);
              add(content);
          * A modified version of FlowLayout that allows containers using this Layout
          * to behave in a reasonable manner when placed inside a JScrollPane
          * Workaround made to fit size of screen on first updateGUI firing
          * @author Babu Kalakrishnan
          * @author Florian Kratschmann
         public class ModifiedFlowLayout extends FlowLayout {
              public ModifiedFlowLayout() {
                   super();
              public ModifiedFlowLayout(int align) {
                   super(align);
              public ModifiedFlowLayout(int align, int hgap, int vgap) {
                   super(align, hgap, vgap);
              public Dimension minimumLayoutSize(Container target) {
                   return computeSize(target, false);
              public Dimension preferredLayoutSize(Container target) {
                   return computeSize(target, true);
              private Dimension computeSize(Container target, boolean minimum) {
                   synchronized (target.getTreeLock()) {
                        int hgap = getHgap();
                        int vgap = getVgap();
                        int w = target.getWidth();
                        if (w == 0) {
                             Dimension size = new Dimension(0, 0);
                             int noOfTn = selectedPhotos.size();
                             try {
                                  size = (Config.getDimension("InternalFrameSize4",
                                            new Dimension(0, 0)));
                                                 if (size.width==0){size.setSize(300, 200);}
                                  int noOfRows = (int) Math.ceil(size.width / 140);
                                  int heightNeeded = (int) ((noOfTn*1.25 / noOfRows) * 140);
                                  size.setSize(140, heightNeeded);
                             } catch (Exception ex) {
                                  ex.printStackTrace();
                                  int peter = 2;
                                  int heightNeeded = ((noOfTn / peter) * 280)+140;
                                  size.setSize(140, heightNeeded + 100);                    
                             return size;
                        } else {
                             // w = Integer.MAX_VALUE;
                             Insets insets = target.getInsets();
                             if (insets == null)
                                  insets = new Insets(0, 0, 0, 0);
                             int reqdWidth = 0;
                             int maxwidth = w - (insets.left + insets.right + hgap * 2);
                             int n = target.getComponentCount();
                             int x = 0;
                             int y = insets.top;
                             int rowHeight = 0;
                             for (int i = 0; i < n; i++) {
                                  Component c = target.getComponent(i);
                                  if (c.isVisible()) {
                                       Dimension d = minimum ? c.getMinimumSize() : c
                                                 .getPreferredSize();
                                       if ((x == 0) || ((x + d.width) <= maxwidth)) {
                                            if (x > 0) {
                                                 x += hgap;
                                            x += d.width;
                                            rowHeight = Math.max(rowHeight, d.height);
                                       } else {
                                            x = d.width;
                                            y += vgap + rowHeight;
                                            rowHeight = d.height;
                                       reqdWidth = Math.max(reqdWidth, x);
                             y += rowHeight;
                             return new Dimension(
                                       reqdWidth + insets.left + insets.right, (int) (y*1.2));
                             // return new Dimension(120, 300);
    }Any idea why it's content is always on top?
    Cheers,
    Flo

    As the title I can have inside a JDesktopPane some JinternalFrame "always on top" compared to one that makes the background?You might get better help by explaining what you want to achieve, rather than how you want to achieve it.
    You can do custom painting in a JDesktopPane, you know.
    db

  • JOptionPane show Message Dialog always on top found a Solution

    just thought of a solution for the age old java problem with message boxes / dialogs / input .
    It's funny when you google it you'll find like a million people asking for a solution but none or very few that gives an answer that works.
    this is probly not a new solution but i came up with this yesterday and thought i would "share".
    dunno why the java developers hasnt made a always on top function for this since there seems to be a very high demand for it.
    this hax will hopefully work at all times.
    hope google will find this thread, i searched for a solution yesterday and found none? which is surprising and im a pro googler too.
    import javax.swing.*;
    public class main{
         public static void main(String args[]){
              JFrame j=new JFrame();
              j.setAlwaysOnTop(true);
              j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              j.setVisible(true);
              j.setVisible(false);
              JOptionPane.showMessageDialog(j,"hi");
              System.exit(0);
    }

    I didn't realize it was an "age old problem." The JOptionPane's showXXX methods just show an ordinary modal dialog. If you want to set the alwaysOnTop property of said dialog then you just need to obtain a reference and call the method in question.
    JOptionPane op = new JOptionPane("hi",JOptionPane.INFORMATION_MESSAGE);
    JDialog dialog = op.createDialog("Message Dialog");
    dialog.setAlwaysOnTop(true); //<-- this line
    dialog.setModal(true);
    dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
    dialog.setVisible(true);No need for an intermediate frame.

  • "Always on Top" of jdk 1.5 is not working when...

    I created a sample application that has Frame/Window and displays some text. Then i needed to make the window always visible on top of any other application or windows. But then when i opened applications like Battle Realms, Counter Strike, or any other games, the window is blocked by the previously run application.
    Can you help me on how can i provide solution with this?
    Thanks in advance.

    This might help you!!!
    About setAlwaysOnTop()
    Changes the always-on-top window state. An always-on-top window is a window that stays above all other windows except maybe other always-on-top windows. If there are several always-on-top windows the order in which they stay relative to each other is not specified and is platform dependent.
    If some other window already is always-on-top then the relative order between these windows is unspecified (depends on platform). No window can be brought to be over always-on-top window except maybe another always-on-top window.
    All owned windows of an always-on-top window automatically become always-on-top windows. If a window ceases to be always-on-top its owned windows cease to be always-on-top.
    When an always-on-top window is sent toBack its always-on-top state is set to false.
    This method makes the window always-on-top if alwaysOnTop is true. If the window is visible, this includes bringing window toFront, then "sticking" it to the top-most position. If the window is not visible it does nothing other than setting the always-on-top property. If later the window is shown, it will be always-on-top. If the Window is already always-on-top, this call does nothing.
    If alwaysOnTop is false this method changes the state from always-on-top to normal. The window remains top-most but its z-order can be changed in the normal way as for any other window. Does nothing if this Window is not always-on-top. Has no effect on relative z-order of windows if there are no other always-on-top windows.

  • "always on top" in fullscreen mode; disable switching away

    Hi,
    I am trying to write a mode for emacs that will keep out as many distractions as possible.  When activated, I can't switch away from the file I'm working on.
    Unfortunately, I can *easily* switch away from my fullscreen Emacs to my webbrowser or email program, and Gnome notifications appear on my screen on top of the Emacs window.
    Is there a way for me to push a fullscreen Emacs window (what Emacs users call a frame) to the top of the windowing stack and DISABLE SWITCHING AWAY FROM IT, while also stopping other windows from poppint above it in the stack?  I'm using Gnome right now, so something gnome-specific would be great, as would any generic solution for X.  There is an "always on top" option for windows in gnome (I am using the default window manager, whatever it is now -- metacity?  compiz? I don't even know anymore!), but it is disabled for fullscreen windows.  that makes sense, normally, but I would like to suspend some of the computer's functionality when I'm writing. 
    Also:  perhaps this deserves its own thread, but it would be nice if notification windows didn't overlay themselves on top of the window that I make this way.
    Thank you!
    Matt

    Hi,
    You say you're using gnome so the default window manager for that would be mutter. The gnome notifications can be turned off from
    gnome-control-center
      I don't know if that's an acceptable solution for you. As for disabling switching to other windows, I've had look in
    dconf-editor
    org --> gnome --> desktop --> wm --> preferences but I don't think I can much that's relevant there. Would disabling raise-on-click deliver the desired behaviour? Otherwise, you could try seeing whether there is an extension at https://extensions.gnome.org/.
    Hope you find what you're looking for
    Last edited by Chazza (2014-03-15 11:47:37)

  • Always on Top, IS THERE A WAY!?!?!!?

    I've searched through th forumns for a way that makes a window always on top, and have yet to find one.
    What I have is a JFRAME that is actually a JMENU in which every everyone window in my application access the same object, the same JMENU. And the frame is seperate from any other window, sorta like a mac. But the problem is, the key accelrators like
    item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, Event.CTRL_MASK));
    only work when the frame is in focus. So is there a way to have that frame always in focus and always on top?

    Thnx, that article is helpful. Now I just need to understand the code and implement it.
    Infact if this works like I'm reading, why wasn't this made a lil more known? This is like the cure for AIDS kept secret.
    Do you think it would better as an interface or as an static object in the menubar?
    Message was edited by:
    blackmage

  • "Always on top" behavior for Navigator Window?

    Greetings,
    Several of our users have asked for an "Always on Top" feature for the OHJ help navigator window. We are using OHJ 4.2.3, on Windows platforms. Our application displays help topics from certain dialog buttons and menu items (using CshManager.showTopic()). If the help windows are currently displayed from a previous help request and the user maximizes the application window, any new help requests are not seen as the help windows do not top themselves.
    Is there any way to force the OHJ window to top itself when a new help topic is displayed? Our users are also asking for the help window to always be on top (a la Task Manager on windows) so they know where it is especially if they're performing a complex task and relying on a set of instructions in the help topic...
    thanks,
    Elizabeth Dyer.

    Elizabeth,
    As part of the showTopic() implementation OHJ calls toFront()
    to bring the help window to the front. If this isn't working
    in a particular case, please let us know. I don't think any
    permanent "on top" feature is feasible, since OHJ windows are
    normal Java dialogs and frames and selecting another Java
    window will activate it instead of OHJ.
    - Ryan (again with quoting from Jeff Stephenson)

Maybe you are looking for