java新手 请问swing中内部面板怎么使用啊?怎么实现在同一个窗体中单击不同按钮在同一个地方弹出不同的内部面板请给出详细的代码高手们 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 -_-!两个不同的按钮show不同的frame或者(javax.swing 类 JPopupMenu)内部 估计你是想问内部窗体的事儿,内部窗体主要用的是"JInternalFrame"这个类,你可以查下API怎么用.参考代码:import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.UIManager; class Mywindow extends JFrame { JButton button1; JButton button2; JInternalFrame interframe1,interframe2; JPanel jpanel; Mywindow() { setVisible(true); //setSize(400,400)见下面的说明! jpanel=(JPanel)this.getContentPane(); jpanel.setLayout(new GridLayout(1,2)); button1=new JButton("我"); button2=new JButton("你"); //------------------------------------------------------ interframe1=new JInternalFrame("内窗体A",true,true,true,true); interframe1.setSize(150,250); interframe1.setVisible(true); // 必须加上此句 !否则内部窗体无法 ! interframe1.getContentPane().add(button1); JDesktopPane desk1=new JDesktopPane(); desk1.add(interframe1); jpanel.add(desk1); //---------------------------------------------------- interframe2=new JInternalFrame("内窗体B",true,true,true,true); interframe2.setSize(150,250); interframe2.setVisible(true); interframe2.getContentPane().add(button2,BorderLayout.CENTER); interframe2.getContentPane().add( new JLabel("你好啊"),BorderLayout.NORTH); JDesktopPane desk2=new JDesktopPane(); desk2.add(interframe2); jpanel.add(desk2); } //-------------------------------------------------------- public Dimension getPreferredSize() { return new Dimension(500,500); /*注意:这种方式设置窗体大小显示的效果更好! *如果直接这样设置setSize(400,400)大小 ,效果不好 * 建议初学者测试! */ } } public class interframe { public static void main(String args[]) { Mywindow win=new Mywindow(); win.pack(); // win.setVisible(true); 如果有此句,内部窗体不显示! // win.setSize(new Dimension(400,400)); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = win.getSize(); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; } win.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); win.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} }); } } -_-#以前还没用过JInternalFrame这个类,学习 用CardLayout来实现 JPanel就行 6楼,我看了你的代码,jpanel=(JPanel)this.getContentPane(); 这句我还不太明白,为什么要另用一个jpanel,用以前的jcontenpane不行吗?还有你写的好象还是在一个面板的俩个地方显示内部面板,是不是得把GridLayout该成CardLayout我是想问在一个jframe 中有俩个jbutton 点击不同的jbutton在jframe中的同一个地方弹出不同的内部窗体 一个小问题。。求解 JAVA泛型...困惑了...... 简单定义一个小接口,实现出错,....... 保存APPLET的画板中的图片和自定义更改鼠标样式的问题,十万火急,请求高手帮助.有高分!谢谢 一个简单的重写问题 请帮忙一下 问个字符判断,作为条件的句子? 请教递归在下面代码中是如何使用的? 用什么方法可以不用配置ODBC就可以访问ms sql数据库? 我的 JDK1.3装在windows98上不能用 (在其他机器上可以) JTable的簡單問題 最大字符串问题 诚心请教,关天文件拖动的问题
类 JPopupMenu)内部
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.UIManager;
class Mywindow extends JFrame
{
JButton button1;
JButton button2; JInternalFrame interframe1,interframe2;
JPanel jpanel;
Mywindow()
{ setVisible(true);
//setSize(400,400)见下面的说明!
jpanel=(JPanel)this.getContentPane();
jpanel.setLayout(new GridLayout(1,2)); button1=new JButton("我");
button2=new JButton("你"); //------------------------------------------------------
interframe1=new JInternalFrame("内窗体A",true,true,true,true);
interframe1.setSize(150,250);
interframe1.setVisible(true); // 必须加上此句 !否则内部窗体无法 !
interframe1.getContentPane().add(button1);
JDesktopPane desk1=new JDesktopPane();
desk1.add(interframe1);
jpanel.add(desk1);
//----------------------------------------------------
interframe2=new JInternalFrame("内窗体B",true,true,true,true);
interframe2.setSize(150,250);
interframe2.setVisible(true);
interframe2.getContentPane().add(button2,BorderLayout.CENTER);
interframe2.getContentPane().add( new JLabel("你好啊"),BorderLayout.NORTH);
JDesktopPane desk2=new JDesktopPane();
desk2.add(interframe2);
jpanel.add(desk2);
}
//-------------------------------------------------------- public Dimension getPreferredSize()
{
return new Dimension(500,500);
/*注意:这种方式设置窗体大小显示的效果更好!
*如果直接这样设置setSize(400,400)大小 ,效果不好
* 建议初学者测试!
*/
} }
public class interframe
{
public static void main(String args[])
{ Mywindow win=new Mywindow();
win.pack();
// win.setVisible(true); 如果有此句,内部窗体不显示!
// win.setSize(new Dimension(400,400));
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = win.getSize();
if (frameSize.height > screenSize.height)
{
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width)
{
frameSize.width = screenSize.width;
}
win.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
win.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{System.exit(0);}
});
}
}
还有你写的好象还是在一个面板的俩个地方显示内部面板,是不是得把GridLayout该成CardLayout
我是想问在一个jframe 中有俩个jbutton 点击不同的jbutton在jframe中的同一个地方弹出不同的内部窗体