怎样在JFrame中添加一个JInternalFrame

初学我想实现在JFrame中通过b按钮弹出JInternalFrame但是实现不了求高手指点。importjava.awt.*;importjavax.swing.*;i... 初学我想实现 在JFrame中通过b按钮 弹出JInternalFrame 但是实现不了 求高手指点。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class AdminFrame extends JFrame implements ActionListener{
JButton b;
public JDesktopPane desktop=null;
public AdminFrame(){
super("");
this.setBounds(570,260,300,240);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setBackground(java.awt.Color.lightGray);
this.setLayout(new java.awt.FlowLayout(FlowLayout.LEFT));
b=new JButton();
desktop = new JDesktopPane();
this.getContentPane().add(desktop);
this.setVisible(true);

}
public void actionPerformed(ActionEvent e){
if(e.getSource()==b){
new NewUserFrame();
}
}
}

import java.awt.*;
import javax.swing.*;
public class NewUserFrame extends JInternalFrame{
JTextField newNumber = null;
JTextField newPassword= null;
JTextField rePassword= null;
public NewUserFrame(){
super("",true,true,true,true);
this.setSize(300,300);
newNumber = new JTextField(18);
newPassword = new JTextField(18);
rePassword = new JTextField(18);
this.getContentPane().add(newNumber);
this.getContentPane().add(newPassword);
this.getContentPane().add(rePassword);
this.setVisible(true);
}
}
展开
 我来答
skyyks0001
推荐于2016-03-16 · TA获得超过430个赞
知道小有建树答主
回答量:228
采纳率:100%
帮助的人:397万
展开全部
有两个地方需要修改:
1、如果使用FlowLayout,那么应该设置desktop的preferredSize
2、将你的InternalFrame加入desktop中

改后:

public class AdminFrame extends JFrame implements ActionListener {

JButton b;
public JDesktopPane desktop = null;

public AdminFrame() {
super("");
this.setBounds(570, 260, 300, 240);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setBackground(java.awt.Color.lightGray);
this.setLayout(new java.awt.FlowLayout(FlowLayout.LEFT));
b = new JButton("Show Internal Frame");
b.addActionListener(this);
desktop = new JDesktopPane();
desktop.setPreferredSize(new Dimension(300, 300));//设置desktop的大小
this.getContentPane().add(desktop);
this.getContentPane().add(b);
this.setVisible(true);
}

public void actionPerformed(ActionEvent e) {
if (e.getSource() == b) {
NewUserFrame newUserFrame = new NewUserFrame();
desktop.add(newUserFrame); //将Internal Frame加入desktop中
}
}

public static void main(String[] args) {
new AdminFrame();
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无根三
2011-11-04 · TA获得超过165个赞
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:90.4万
展开全部
main方法呢
追问
public static void main(String[] args) {      //main 方法  在AdminFrame类中
new AdminFrame();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式