import java.lang.*;
import javax.swing.*;
import java.awt.*;public class myFrame extends JFrame
{
public myFrame()
{
this.setBounds(0,0,250,210);
this.setBackground(Color.pink);
//this.setEnabled(false);
this.setVisible(true);
}
public static void main(String [] args)
{
myFrame jinternalframe=new myFrame();
jinternalframe.setEnabled(false);
}
}这是我临时为你写的一个程序,你可以copy一下,然后看看运行结果就行了!
注意你copy后,你的java文件名必须要和我的一样的,即myFrame.java
这里有两种方法可以实现jinternalfame不可用!
第一种是我程序中用//表示的那一句!
第二种是在main函数中创建对象就行!
两种方法你可以任意选一个!
import javax.swing.*;
import java.awt.*;public class myFrame extends JFrame
{
public myFrame()
{
this.setBounds(0,0,250,210);
this.setBackground(Color.pink);
//this.setEnabled(false);
this.setVisible(true);
}
public static void main(String [] args)
{
myFrame jinternalframe=new myFrame();
jinternalframe.setEnabled(false);
}
}这是我临时为你写的一个程序,你可以copy一下,然后看看运行结果就行了!
注意你copy后,你的java文件名必须要和我的一样的,即myFrame.java
这里有两种方法可以实现jinternalfame不可用!
第一种是我程序中用//表示的那一句!
第二种是在main函数中创建对象就行!
两种方法你可以任意选一个!
但JINTERNALFRAME不可以...
不过我想知道楼主为什么要禁用呢.....
我是这样理解的,好的解决办法我也没想出来,不过实在不行我出个馊主意:
如果这个JIternalFrame上的组件不复杂的话(比如组件都是直接加在ContentPane上),调用getComponents()方法返回一个Component[]数组,然后楼主用for循环给它们都禁用了。import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.util.EventListener;
import java.awt.event.ActionEvent;public class TestMenu extends JFrame implements ActionListener
{
JMenuBar jmb;
JMenu jm;
JMenuItem jmi;
JDesktopPane jdk;
Container con;
public TestMenu()
{
con = this.getContentPane();
jmb=new JMenuBar();
jm=new JMenu("Open");
jmi=new JMenuItem("New");
jmi.addActionListener(this);
jdk=new JDesktopPane();
jm.add(jmi);
jm.addSeparator();
jmb.add(jm);
con.add(jdk);
this.setJMenuBar(jmb);
this.setSize(400,400);
this.setVisible(true);
}
public static void main(String args[])
{
new TestMenu();
} public void actionPerformed(ActionEvent e) {
if(e.getSource()==jmi)
{
JOpenFrame jo=new JOpenFrame();
jo.setEnabled(false);
Component[] c= jo.con.getComponents();
for(int i=0;i<c.length;i++)
c[i].setEnabled(false);
//for(Component i:c)
//i.setEnabled(false);
jdk.add(jo);
}
}
}
class JOpenFrame extends JInternalFrame
{
JLabel jl;
JButton jb1,jb2;
Container con;
public JOpenFrame()
{
super("Open",true,true,true,true);
con=this.getContentPane();
con.setLayout(new FlowLayout());
jb1=new JButton("OK");
jb2=new JButton("Cancel");
con.add(jb1);
con.add(jb2);
setSize(300,300);
setVisible(true);
}
}
说了半天,我觉得你的思路还算是一个办法。起码你帮我想了。去 http://community.csdn.net/Expert/topic/3799/3799274.xml?temp=.3714258 回一下帖,我把那个帖子的100分也给你。