java 能否有 MDI窗体.
java 能否有 MDI窗体.
主窗体, 子窗体在里面
可以用什么类
问题点数:100、回复次数:11Top
1 楼sunni(死猪)回复于 2002-12-03 14:09:05 得分 0
当然能 jb就是用java写的
你买一本java图形设计 swing 看看吧Top
2 楼qiaoxing2000(乔星)回复于 2002-12-03 14:29:01 得分 0
我要知道具体的类 用什么?
有例子吗?
Top
3 楼netwebs(Only Java)回复于 2002-12-03 14:49:59 得分 0
内部窗体就挺好Top
4 楼copyright(笨蛋白痴神经质)回复于 2002-12-03 15:01:37 得分 0
jb哪个我我想使用的tablepane吧,至于mdi的概念很少用到,:(Top
5 楼copyright(笨蛋白痴神经质)回复于 2002-12-03 22:25:38 得分 0
不过我的建议是:JLayeredPane和JInternalFrame被一起用来在当前帧中创建子帧,以产生多文件接口(MDI)应用程序。
呵呵,应该是你的效果吧,my pointsTop
6 楼fastmask(我心烦)回复于 2002-12-03 22:43:10 得分 0
内部窗体是挺好Top
7 楼beyond_xiruo(CorruptionException)回复于 2002-12-03 23:57:24 得分 45
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)
{
}
}
};
}Top
8 楼Fancy_duan(笑天)回复于 2002-12-04 09:22:51 得分 45
用内部贞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);
}
}
你也可以把它们合成一个,看情况而定。
Top
9 楼redkey(7P狼)回复于 2002-12-04 09:36:45 得分 0
使用JInternalFrameTop
10 楼PEgirl(曾经)回复于 2002-12-04 09:48:49 得分 0
JInternalFrame
Top
11 楼ilka()回复于 2002-12-04 09:56:58 得分 10
请运行jdk1.3目录\demo\jfc\SwingSet2\swingset2.jar
里面有例子及源代码Top




