java程序未得到预想的结果,在点击菜单栏后面板上没有输出。

我从相关的java的编程书上抄写了一个程序MyDesktopPane.java如下:importjava.awt.*;importjava.awt.event.*;imp... 我从相关的java的编程书上抄写了一个程序MyDesktopPane.java如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

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);
setSize(400,200);
setVisible(true);
}

public void actionPerformed(ActionEvent e)
{
System.out.println("点击子菜单");
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);
setVisible(true);
}

public static void main(String[] args)
{
MyDesktopPane f=new MyDesktopPane();
f.addWindowListener(new MyWindowListener());
}
}

class CirclePanel extends JPanel
{
private ImageIcon imageicon;
public CirclePanel()
{
imageicon=new ImageIcon("noleft.gif");
}

public void paintComponent(Graphics g)
{
imageicon.paintIcon(this,g,0,0);
}

public Dimension getImageWidthHeight()
{
return new Dimension(imageicon.getIconWidth(),imageicon.getIconHeight());
}
}
其中用到的MyWindowListener这个类如下:
import java.awt.event.*;

public class MyWindowListener implements WindowListener
{
public void windowActivated(WindowEvent e)
{
System.out.println("窗口为活动状态");
}

public void windowClosed(WindowEvent e)
{
System.out.println("窗口为关闭状态");
System.exit(0);
}

public void windowClosing(WindowEvent e)
{
System.out.println("窗口正在关闭");
System.exit(0);
}

public void windowDeactivated(WindowEvent e)
{
System.out.println("窗口不再活动");
}

public void windowDeiconified(WindowEvent e)
{
System.out.println("窗口由最小化变为正常");
}

public void windowIconified(WindowEvent e)
{
System.out.println("窗口为最小化");
}

public void windowOpened(WindowEvent e)
{
System.out.println("窗口首次可见");
}
}
展开
 我来答
mcltl
2010-09-30 · TA获得超过158个赞
知道小有建树答主
回答量:114
采纳率:0%
帮助的人:80.4万
展开全部

public void actionPerformed(ActionEvent e) {

  System.out.println("点击子菜单");

  JInternalFrame inframe = new JInternalFrame("内部框架:圆环", true, true, true, true);

  Container c = inframe.getContentPane();

  setLayout(new FlowLayout());

  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);

  ////////////////////////////////增加代码

  this.add(desktoppane);

  this.add(c);

  ///////把 panel 放到 JFrame 中 因为 Panel 是不能单独存在的 必须放到 框架里面才能显示

  setVisible(true);

 }

hoary20
2010-09-30 · TA获得超过710个赞
知道小有建树答主
回答量:797
采纳率:0%
帮助的人:345万
展开全部

没问题啊,我运行了一下,得到的东西

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友91f49c4
2010-09-30 · TA获得超过1176个赞
知道小有建树答主
回答量:1683
采纳率:0%
帮助的人:669万
展开全部
类CirclePanel 中图片没有找到
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式