我试图让JInternalFrame在启动时最大化.我已经对此进行了网络搜索并尝试了各种代码建议,但它们似乎无法在我的机器上正常运行,该机器在
Windows 7上运行
Java 6.
任何人都可以告诉我如何更改下面的代码,以便内部框架在创建时自动最大化?
import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import javax.swing.JDesktopPane; import javax.swing.JFrame; import javax.swing.JInternalFrame; import javax.swing.JLayeredPane; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.KeyStroke; public class MaximizeInternalFrame extends JFrame implements ActionListener{ private static final long serialVersionUID = 1L; JLayeredPane desktop; JInternalFrame internalFrame; public MaximizeInternalFrame() { super("Test To Maximize Internal Frame"); this.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); //Make the big window be indented 50 pixels from each edge of the screen. int inset = 50; Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension screenMinus50 = new Dimension(screenSize.width - inset*2,screenSize.height - inset*2); this.setPreferredSize(screenMinus50); desktop = new JDesktopPane(); setJMenuBar(createMenuBar()); this.add(desktop,BorderLayout.CENTER); this.pack(); this.setSize(screenMinus50); this.setLocationRelativeTo(null); } protected JMenuBar createMenuBar() { JMenuBar menuBar = new JMenuBar(); //Set up the File menu. JMenu FileMenu = new JMenu("File"); FileMenu.setMnemonic(KeyEvent.VK_F); menuBar.add(FileMenu); //Set up the first menu item. JMenuItem menuItem = new JMenuItem("New"); menuItem.setMnemonic(KeyEvent.VK_N); menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,ActionEvent.ALT_MASK)); menuItem.setActionCommand("new"); menuItem.addActionListener(new OpenListener()); FileMenu.add(menuItem); //Set up the second menu item. menuItem = new JMenuItem("Quit"); menuItem.setMnemonic(KeyEvent.VK_Q); menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,ActionEvent.ALT_MASK)); menuItem.setActionCommand("quit"); menuItem.addActionListener(this); FileMenu.add(menuItem); return menuBar; } class OpenListener implements ActionListener { public void actionPerformed(ActionEvent e) { // create internal frame internalFrame = new JInternalFrame("this internal frame needs to be maximized",true,true); desktop.add(internalFrame); internalFrame.setSize(internalFrame.getMaximumSize()); internalFrame.pack(); internalFrame.setVisible(true); } } public static void main(String args[]) { MaximizeInternalFrame myParentFrame = new MaximizeInternalFrame(); myParentFrame.setVisible(true); } public void actionPerformed(ActionEvent e) {if ("quit".equals(e.getActionCommand())){System.exit(0);}} }