我的JInternalFrame为什么不出来????45分!!!!!!!!!!!
肖尧19 2001-07-20 11:18:58 下面是源程序:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.border.*;
public class TJLayeredPane extends JFrame implements ActionListener
{
JButton button;
JLayeredPane layeredPane;
static int frameCount=0;
static final int xOffSet=25;
static final int yOffSet=25;
int numFrames=1;
Integer[] frameConstants={JLayeredPane.DEFAULT_LAYER,JLayeredPane.PALETTE_LAYER,
JLayeredPane.MODAL_LAYER,JLayeredPane.POPUP_LAYER,JLayeredPane.DRAG_LAYER};
String[] layerNames={"Default layer","Palette layer","Modal layer","Popup layer","Drag layer"};
Vector framesVector=new Vector();
public TJLayeredPane()
{
super("TJLayeredPane");
JPanel panel=new JPanel(new GridLayout(3,3));
panel.setBorder(BorderFactory.createTitledBorder("Click button to add frames or clear frames"));
for(int i=0;i<layerNames.length+1;i++)
{
if(i<layerNames.length)
{
button=new JButton(layerNames[i]);
button.setActionCommand(layerNames[i]);
}
else
{
button=new JButton("clear the frame");
button.setActionCommand("clear");
button.setForeground(Color.red);
}
button.addActionListener(this);
panel.add(button);
}
getContentPane().add(panel,BorderLayout.SOUTH);
layeredPane=getLayeredPane();
addWindowListener(new WindowEventHandler());
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
setSize(500,500);
show();
}
public void actionPerformed(ActionEvent e)
{
JButton tempButton=(JButton)e.getSource();
if(tempButton.getActionCommand()==layerNames[0])
{
addInternalFrame(0);
}
else if(tempButton.getActionCommand()==layerNames[1])
{
addInternalFrame(1);
}
else if(tempButton.getActionCommand()==layerNames[2])
{
addInternalFrame(2);
}
else if(tempButton.getActionCommand()==layerNames[3])
{
addInternalFrame(3);
}
else if(tempButton.getActionCommand()==layerNames[4])
{
addInternalFrame(4);
}
else if(tempButton.getActionCommand()=="clear")
{
for(Enumeration enum=framesVector.elements();enum.hasMoreElements();)
{
((JInternalFrame)enum.nextElement()).dispose();
}
frameCount=0;
}
}
public void addInternalFrame(int index)
{
JInternalFrame iFrame=new JInternalFrame("in"+layerNames[index],true,true,true,true);
framesVector.addElement(iFrame);
iFrame.setLocation(xOffSet*(frameCount),yOffSet*(frameCount++));
iFrame.setSize(200,150);
iFrame.setDefaultCloseOperation(iFrame.DO_NOTHING_ON_CLOSE);
iFrame.setFrameIcon(new ImageIcon("a.gif"));
layeredPane.add(iFrame,frameConstants[index]);
}
class WindowEventHandler extends WindowAdapter
{
public void WindowClosing(WindowEvent e)
{
System.exit(0);
}
}
public static void main(String[] args)
{
TJLayeredPane frame=new TJLayeredPane();
}
}