java 能否有 MDI窗体. 当然能 jb就是用java写的你买一本java图形设计 swing 看看吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 jb哪个我我想使用的tablepane吧,至于mdi的概念很少用到,:( 不过我的建议是:JLayeredPane和JInternalFrame被一起用来在当前帧中创建子帧,以产生多文件接口(MDI)应用程序。呵呵,应该是你的效果吧,my points import java.awt.*; import java.awt.event.*; import javax.swing.*; class QQQ extends JFrame { JDesktopPane desk = new JDesktopPane(); JInternalFrame if1 = new JInternalFrame(); JInternalFrame if2 = new JInternalFrame(); JButton bt1 = new JButton("Switch 1"); JButton bt2 = new JButton("Switch 2"); JButton btOpen = new JButton("Open"); JTextField txt = new JTextField("I got focus!"); QQQ() { JPanel temp = new JPanel(); temp.add(bt1); temp.add(bt2); temp.add(btOpen); getContentPane().add(temp, BorderLayout.NORTH); getContentPane().add(desk, BorderLayout.CENTER); desk.add(if1); desk.add(if2); if1.getContentPane().add(txt, BorderLayout.NORTH); if1.reshape(10,10,100,100); if2.reshape(30,30,100,100); bt1.addActionListener(new MyListener()); bt2.addActionListener(new MyListener()); btOpen.addActionListener(new MyListener()); setBounds(100,100,400,400); show(); } public static void main(String[] args) { QQQ q = new QQQ(); } class MyListener implements ActionListener { public void actionPerformed(ActionEvent e) { try { if(e.getSource()==bt1) if1.setSelected(true); else if(e.getSource()==bt2) if2.setSelected(true); else{ if1.setVisible(true); if2.setVisible(true); if1.setSelected(true); txt.requestFocus(); } } catch (Exception ex) { } } }; } 用内部贞JInternalFrame,它生成的窗口,你就可以把它当成一个组件加在容器里(容器可以是JFrame、JWindow、jPanel)。可以看一下java的帮助文件,里面都有。下面是个拙劣的小程序,但基本原理就是这样,希望对你有帮助!:)主窗口:import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class Demo { public static void main(String args[]) { DFrame frame=new DFrame(); frame.show(); }}class DFrame extends JFrame{ public DFrame() { setTitle("Demo Frame"); setSize(800,600); Container cp=getContentPane(); DemoSon s=new DemoSon("Green Desk",true,true,true,true); cp.add(s,FlowLayout.LEFT); s.show(); } }子窗口:import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class DemoSon extends JInternalFrame{ public DemoSon(String title,boolean resizable,boolean closable,boolean maximizable,boolean iconifiable) { super(title,resizable,closable,maximizable,iconifiable); setTitle("InternalFrameTest"); setSize(300, 200); JPanel bp=new JPanel(); JButton bt=new JButton("Quit"); this.getContentPane().add(bt,BorderLayout.NORTH); }}你也可以把它们合成一个,看情况而定。 请运行jdk1.3目录\demo\jfc\SwingSet2\swingset2.jar里面有例子及源代码 java 新手提问 请教个关于Font的问题 java 正则表达式的应用问题? 网络字节转换成主机字节,在转换成Date 请问怎么把数组里的数输出到JTextField里面显示呢?谢谢! 用jar打包的问题 请问为什么我无法将一幅图片绘到一个按纽上去?请大师帮我分析一下。先在此谢过了! java读取word文档 vector 和 hashtable有碍什么区别? 多线程的问题 希望高手能帮我解决问题 jbuilder写applet,用了xylayout,dataset等,怎样发布呢 高手赐教:关于java编译环境的问题
呵呵,应该是你的效果吧,my points
import java.awt.event.*;
import javax.swing.*;
class QQQ extends JFrame
{
JDesktopPane desk = new JDesktopPane();
JInternalFrame if1 = new JInternalFrame();
JInternalFrame if2 = new JInternalFrame();
JButton bt1 = new JButton("Switch 1");
JButton bt2 = new JButton("Switch 2");
JButton btOpen = new JButton("Open");
JTextField txt = new JTextField("I got focus!"); QQQ()
{
JPanel temp = new JPanel();
temp.add(bt1);
temp.add(bt2);
temp.add(btOpen);
getContentPane().add(temp, BorderLayout.NORTH);
getContentPane().add(desk, BorderLayout.CENTER);
desk.add(if1);
desk.add(if2);
if1.getContentPane().add(txt, BorderLayout.NORTH);
if1.reshape(10,10,100,100);
if2.reshape(30,30,100,100);
bt1.addActionListener(new MyListener());
bt2.addActionListener(new MyListener());
btOpen.addActionListener(new MyListener());
setBounds(100,100,400,400);
show();
} public static void main(String[] args)
{
QQQ q = new QQQ();
}
class MyListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
try
{
if(e.getSource()==bt1)
if1.setSelected(true);
else if(e.getSource()==bt2)
if2.setSelected(true);
else{
if1.setVisible(true);
if2.setVisible(true);
if1.setSelected(true);
txt.requestFocus();
}
}
catch (Exception ex)
{
} }
};
}
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;public class Demo
{
public static void main(String args[])
{
DFrame frame=new DFrame();
frame.show();
}
}class DFrame extends JFrame
{
public DFrame()
{
setTitle("Demo Frame");
setSize(800,600);
Container cp=getContentPane();
DemoSon s=new DemoSon("Green Desk",true,true,true,true);
cp.add(s,FlowLayout.LEFT);
s.show();
}
}子窗口:import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;public class DemoSon extends JInternalFrame
{
public DemoSon(String title,boolean resizable,boolean closable,boolean maximizable,boolean iconifiable)
{
super(title,resizable,closable,maximizable,iconifiable);
setTitle("InternalFrameTest");
setSize(300, 200);
JPanel bp=new JPanel();
JButton bt=new JButton("Quit");
this.getContentPane().add(bt,BorderLayout.NORTH);
}
}你也可以把它们合成一个,看情况而定。
里面有例子及源代码