2013-06-25 1 views
0

그래서 JDesktopPane을 사용하여 다양한 내부 프레임을 보유하는 프로그램을 만들려고합니다. 아래 코드에서 하나의 내부 프레임 (로그인 프레임) 만 있습니다. 내부 프레임을 외부 프레임에 전달하고 그런 프레임을 추가하기를 바랬습니다. 하지만 문제는이 일을 데 .... 파일 이름은 봐 TheProgram.java입니다 :GUI 프로그래밍 및 다른 클래스 내에서 클래스를 호출

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

을, 당신이 프로그램은 않습니다 .. .nothing ... 실제로 무엇을 달성하려고하는지 말할 수 없다. 내가 알 수있는 것은'JFrame'과'JInternalFrame'은 호환되지 않는다는 것이다. – MadProgrammer

+0

보통 JDialog가 로그온 정보로 사용된다. –

답변

1

귀하의 주요 방법은 생성자가있는 outerframe를 구축이

public static void main(String[] args) 
    { 
     new OuterFrame(); 
    } 

입니다

OuterFrame() 
    { 

    } 

은 ... 아무것도에게

에디 실행하지 않습니다 t : 이것은 일반적으로 로그인이 Dialog가 될 주석에 제안 된 것처럼 아마도이 작업을 수행하는 가장 좋은 방법은 아닙니다. 나는 당신을 위해 일할 몇 가지 코드를 작성했으나 경영 측면에서 최고의 권위가 아닐 수도있다.

먼저 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); 
} 
+1

하하, 바보 같은 짓 ...하지만 다른 문제는 어떻게 해결합니까? – user2518777

+0

@ user2518777 Ive가 작동하도록 몇 가지 코드를 추가했습니다 ... –

관련 문제