java 最大化_在Java中最大化JInternalFrame

我试图让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, 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);}}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值