JMenubar sample program on JInternalFrame when I increment JInternalFrame

Hi, I need an example program in which When I maximize the JInternalFrame, the JMenuBar JFrame must set the JInternalFrame and When I minimize the JInternalFrame again, the JMenuBar must leave the JinternalFrame and set to the JFrame, as shown below When the JInternalFrame is Maximized

When JInternalFrame is Minimized

Please provide me an example program in Java Swing

+4
source share
2 answers

It seems to work well, please write SSCCE to show a specific problem:

enter image description here

import java.awt.*; import java.awt.event.*; import javax.swing.JDesktopPane; import javax.swing.JFrame; import javax.swing.JInternalFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.SwingUtilities; public class JInternalFrameDemo { JDesktopPane jdpDesktop; static int openFrameCount = 0; public JInternalFrameDemo() { JFrame frame = new JFrame("JInternalFrame Usage Demo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // A specialized layered pane to be used with JInternalFrames jdpDesktop = new JDesktopPane() { @Override public Dimension getPreferredSize() { return new Dimension(600, 600); } }; createFrame(); // Create first window frame.setContentPane(jdpDesktop); frame.setJMenuBar(createMenuBar()); // Make dragging faster by setting drag mode to Outline jdpDesktop.putClientProperty("JDesktopPane.dragMode", "outline"); frame.pack(); frame.setVisible(true); } protected JMenuBar createMenuBar() { JMenuBar menuBar = new JMenuBar(); JMenu menu = new JMenu("Frame"); menu.setMnemonic(KeyEvent.VK_N); JMenuItem menuItem = new JMenuItem("New IFrame"); menuItem.setMnemonic(KeyEvent.VK_N); menuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { createFrame(); } }); menu.add(menuItem); menuBar.add(menu); return menuBar; } protected void createFrame() { MyInternalFrame frame = new MyInternalFrame(); frame.setVisible(true); // Every JInternalFrame must be added to content pane using JDesktopPane jdpDesktop.add(frame); try { frame.setSelected(true); } catch (java.beans.PropertyVetoException e) { } } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new JInternalFrameDemo(); } }); } class MyInternalFrame extends JInternalFrame { static final int xPosition = 30, yPosition = 30; public MyInternalFrame() { super("IFrame #" + (++openFrameCount), true, // resizable true, // closable true, // maximizable true);// iconifiable setSize(300, 300); // Set the window location. setLocation(xPosition * openFrameCount, yPosition * openFrameCount); } } } 
+6
source

I also have a similar problem. This is a bug in the JInternalFrame LookAndFell. JInternalFrames using Windows L & F, should be larger than Windows. If I maximize JInternalWindow, this window does not work like on Windows. Its top panel should be the same as MDI. Meus and Toolbars should be inside. The maximum internal framework should not have its own border.

Visit http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4102061 for data.

0
source

All Articles