2014-02-11 6 views
0

저는 Java에서 초보자입니다. 큰 시스템에서 첫 번째 단계를 만들고 싶습니다. 이 작업을 위해 Eclipse WindowsBuilder를 사용하려했지만 이해할 수없는 코드가 많았으며 더 나아가 어떻게 진행해야할지 모르겠다. ...자바 프레임과 버튼 동작

내가 원하는 작업은 간단하다. 내 프로그램을 실행할 때 작은 창 (프레임?)에 레이블 "user name"과 그 옆에 텍스트 필드가 나타나기를 원합니다. 아래에 다른 레이블 "password"와 그 옆에 암호 필드가 있어야합니다. 그 아래에서 버튼을 누르면 "제출"버튼을 누르면이 창/프레임을 닫고 새로운 창/프레임을 열어서 모든 것을 넣을 것입니다. 이것은 내 코드이며, 첫 번째 창을 만듭니다. 버튼을 누를 때 원하는 모양으로 만드는 법을 모르겠습니다. 또한 주요 방법없이 새 프레임에 대한 새 클래스를 만드는 방법을 잘 모르겠습니다. 작동합니까?

도움이되고 도움이되는 지침을 주셔서 감사합니다. (더 좋은 방법이 있거나 windowsbuilder없이 작성하면 도움이됩니다.)

package HR; 

import java.awt.BorderLayout; 
import java.awt.EventQueue; 
import java.awt.Frame; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.border.EmptyBorder; 

import com.jgoodies.forms.layout.FormLayout; 
import com.jgoodies.forms.layout.ColumnSpec; 
import com.jgoodies.forms.layout.RowSpec; 
import com.jgoodies.forms.factories.FormFactory; 

import javax.swing.JLabel; 
import javax.swing.JFormattedTextField; 
import javax.swing.JPasswordField; 
import javax.swing.JButton; 

import java.awt.event.ActionListener; 
import java.awt.event.ActionEvent; 

public class SignIn extends JFrame { 

    private JPanel contentPane; 
    private JPasswordField passwordField; 

    /** 
    * Launch the application. 
    */ 
    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       try { 
        SignIn frame = new SignIn(); 
        frame.setVisible(true); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 

    /** 
    * Create the frame. 
    */ 
    public SignIn() { 
     setTitle("SYSTEM"); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setBounds(100, 100, 308, 179); 
     contentPane = new JPanel(); 
     contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 
     setContentPane(contentPane); 
     contentPane.setLayout(new FormLayout(new ColumnSpec[] { 
       FormFactory.RELATED_GAP_COLSPEC, 
       FormFactory.DEFAULT_COLSPEC, 
       FormFactory.RELATED_GAP_COLSPEC, 
       FormFactory.DEFAULT_COLSPEC, 
       FormFactory.RELATED_GAP_COLSPEC, 
       FormFactory.DEFAULT_COLSPEC, 
       FormFactory.RELATED_GAP_COLSPEC, 
       ColumnSpec.decode("default:grow"),}, 
      new RowSpec[] { 
       FormFactory.RELATED_GAP_ROWSPEC, 
       FormFactory.DEFAULT_ROWSPEC, 
       FormFactory.RELATED_GAP_ROWSPEC, 
       FormFactory.DEFAULT_ROWSPEC, 
       FormFactory.RELATED_GAP_ROWSPEC, 
       FormFactory.DEFAULT_ROWSPEC, 
       FormFactory.RELATED_GAP_ROWSPEC, 
       FormFactory.DEFAULT_ROWSPEC,})); 

     JLabel lblNewLabel = new JLabel("User Name"); 
     contentPane.add(lblNewLabel, "4, 4, right, default"); 

     final JFormattedTextField username = new JFormattedTextField(); 
     contentPane.add(username, "6, 4, 3, 1, fill, default"); 

     JLabel lblNewLabel_1 = new JLabel("Password"); 
     contentPane.add(lblNewLabel_1, "4, 6, right, default"); 

     passwordField = new JPasswordField(); 
     contentPane.add(passwordField, "6, 6, 3, 1, fill, default"); 

     JButton btnSignIn = new JButton("Sign In"); 
     btnSignIn.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent arg0) 
      { 
       username.setText("Me"); 
      } 
     }); 
     contentPane.add(btnSignIn, "6, 8"); 
    } 

} 
+0

다음은 'JFrame'대신 'JDilog'를 사용하는 간단한 [로그인] (http://stackoverflow.com/a/20286447/2587435)의 예입니다. –

답변

0

새로운 창을 creat에 할 수있는 적절한 장소 당신이 단지 클래스와 함께 새로운 JPanel의()를 교체해야 당신이

 public void actionPerformed(ActionEvent arg0) 
     { 
      dispose();    //close old frame 
      JFrame f = new JFrame("test"); //creat new frame 
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      f.add(new JPanel());  //add new panel 
      f.setVisible(true);  //make it visible 
      f.setSize(768,1024);  //set the size 
     } 

처럼 그것을 할 수 있습니다 여기에

 public void actionPerformed(ActionEvent arg0) 
     { 

     } 

입니다 jpanel을 확장합니다. 당신이 옳다면, 당신은 당신의 반에서 주요 방법이 필요하지 않습니다. 모든 이벤트가 등 버튼

0
public void actionPerformed(ActionEvent arg0) 
    { 
     dispose();    
     JFrame newFrame = new JFrame("newJFrame");  
     newFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     newFrame.add(new JPanel());  
     newFrame.setSize(200,200);  //set this to any size you wish    
     newFrame.setVisible(true);    
    } 

그냥 JPanel을가 처리됩니다 버튼에 리스너 휴식을 확장하는 클래스와 새로운 JPanel의 교체에 청취자에 의해 트리거됩니다. 모두 제일 좋다!