黑马程序员技术交流社区

标题: 关于java的JDesktopPane类的问题 [打印本页]

作者: 18618120018    时间: 2014-7-25 17:14
标题: 关于java的JDesktopPane类的问题
本帖最后由 18618120018 于 2014-7-25 17:18 编辑

                我照着教材打的例子,为什么没出现效果,请问是哪里出问题了,点击新建窗口—内部框架 就没反应了

代码如下:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class MyDesktopPane extends JFrame
implements ActionListener{
        final static JDesktopPane desktopPane=new JDesktopPane();
        public MyDesktopPane(){
                super("MyDesktopPane");       
                JMenuBar menuBar=new JMenuBar();
                JMenu menu=new JMenu("新增窗口");
                JMenuItem menuItem=new JMenuItem("内部框架窗口");
                menu.add(menuItem);
                menuBar.add(menu);
                setJMenuBar(menuBar);
                getContentPane().add(desktopPane);
                menuItem.addActionListener(this);
                setBounds(300,300,300,300);
                setVisible(true);
        }
        public void actionPerformed(ActionEvent e){
                JInternalFrame inFrame=new JInternalFrame("内部框架(圆环)",true,true,true,true);
                Container c=inFrame.getContentPane();
                CirclePanel circlePanel=new CirclePanel();
                JLabel label=new JLabel("圆环");
                c.add(circlePanel,BorderLayout.CENTER);
                c.add(label,BorderLayout.WEST);       
                int w=circlePanel.getImageWidthHeight().width+150;
                int h=circlePanel.getImageWidthHeight().height+50;
                inFrame.setSize(w,h);
                inFrame.reshape(100,50,w,h);
                inFrame.setOpaque(true);
                desktopPane.add(inFrame);
        }
        public static void main(String args[]){
                MyDesktopPane app=new MyDesktopPane();
                app.addWindowListener(new MyWindowListener());       
        }
}
class CirclePanel extends JPanel{
        private ImageIcon imgIcon;
        public CirclePanel(){
                imgIcon=new ImageIcon("1.gif");       
        }
        public void paintComponent(Graphics g){
                imgIcon.paintIcon(this,g,0,0);       
        }
        public Dimension getImageWidthHeight(){
                return new Dimension(imgIcon.getIconWidth(),imgIcon.getIconHeight());
        }
}         




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2