Java GUI编程和从另一个类中调用一个类
所以我试图制作一个程序,利用JDesktopPane来保存许多不同的内部帧。在下面的代码中,我只有一个内部框架(登录框架)。我希望将内部框架传递到外部框架,然后像这样添加它们。但我在做这件事时遇到了问题。。。。文件名为program.java Look:Java GUI编程和从另一个类中调用一个类,java,swing,class,user-interface,awt,Java,Swing,Class,User Interface,Awt,所以我试图制作一个程序,利用JDesktopPane来保存许多不同的内部帧。在下面的代码中,我只有一个内部框架(登录框架)。我希望将内部框架传递到外部框架,然后像这样添加它们。但我在做这件事时遇到了问题。。。。文件名为program.java Look: import javax.swing.*; import java.awt.BorderLayout; class OuterFrame { JDesktopPane outframe = new JDesktopPane(); Ou
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();
}
}
你的主要方法是
public static void main(String[] args)
{
new 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);
}
然后,在主方法中,您需要使用以下构造函数创建登录框架和outerframe的实例:
public static void main(String[] args)
{
Login log = new Login();
OuterFrame frame = new OuterFrame(log.login);
}
所以,就我所知,你的程序没有…什么…我也不能真正告诉你你想要实现什么…我能告诉你的是,
JFrame
和JInternalFrame
不兼容通常,JDialog用于登录信息。