所以我试图制作一个利用JDesktopPane来保存许多不同内部帧的程序。在下面的代码中,我只有一个内部框架(一个登录框架)。我希望将内部框架传递到外框并像这样添加它们。但我这样做有问题....文件名是TheProgram.java看:
import javax.swing.*;
import java.awt.BorderLayout;
class OuterFrame
{
JDesktopPane outframe = new JDesktopPane();
OuterFrame()
{
}
OuterFrame(JInternalFrame inframe)
{
outframe.add(inframe);
}
}
class Login extends JFrame
{
JPanel panel;
JLabel lblname;
JLabel lblpassword;
JTextField txtname;
JPasswordField txtpassword;
JButton btlogin;
JInternalFrame login = new JInternalFrame();
Login()
{
login.setSize(300,200);
login.setLocation(10,2);
login.setTitle("Member Login");
lblname=new JLabel("User Name:");
lblpassword=new JLabel("Password:");
btlogin=new JButton("Login");
txtname=new JTextField(20);
txtpassword=new JPasswordField(20);
panel=new JPanel();
panel.add(lblname);
panel.add(txtname);
panel.add(lblpassword);
panel.add(txtpassword);
panel.add(btlogin);
//panel.add(lblmess);
login.add(panel);
login.setVisible(true);
}
public void method()
{
OuterFrame.OuterFrame(login);
}
}
public class TheProgram
{
public static void main(String[] args)
{
new OuterFrame();
}
}
答案 0 :(得分:1)
您的主要方法是
public static void main(String[] args)
{
new OuterFrame();
}
构造outerframe
,其中包含构造函数
OuterFrame()
{
}
......什么都不做
编辑:这可能不是您这样做的最佳方式,正如评论中所建议的那样,登录通常是对话。我已经编写了一些适合您的代码,但在管理方面可能不是最好的锣。
首先,你的OuterFrame的构造函数需要对你传递它的内部框架做一些事情。喜欢这个
OuterFrame(JInternalFrame inframe)
{
JFrame aFrame = new JFrame();
outframe.add(inframe);
outframe.setVisible(true);
aFrame.setLayout(new BorderLayout());
aFrame.setSize(400,400);
aFrame.add(outframe);
aFrame.setVisible(true);
}
然后在你的main方法中,你需要使用这个构造函数创建一个Login框架和一个外框实例:
public static void main(String[] args)
{
Login log = new Login();
OuterFrame frame = new OuterFrame(log.login);
}