2017-06-04 6 views
-1

public void actionPerformed(ActionEvent arg0)の下でjtextフィールドからデータを取得するためにいくつかの関数を追加しようとすると、私のGUIは空白になります。私は何が間違っているのか理解できません。public void actionPerformed(ActionEvent arg0)

import java.awt.BorderLayout; 
    import java.awt.EventQueue; 
    import javax.swing.JFrame; 
    import javax.swing.JPanel; 
    import javax.swing.border.EmptyBorder; 
    import javax.swing.JLabel; 
    import javax.swing.JRadioButton; 
    import javax.swing.JTextField; 
    import javax.swing.JButton; 
    import java.awt.event.ActionListener; 
    import java.awt.event.ActionEvent; 

    public class Register extends JFrame { 

     private JPanel contentPane; 
     private JTextField textField; 
     private JTextField textField_1; 
     private JTextField textField_2; 
     private JTextField textField_3; 
     private JTextField textField_4; 
     private JLabel lblNewLabel; 

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

     /** 
     * Create the frame. 
     */ 
     public Register() { 
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      setBounds(100, 100, 450, 300); 
      contentPane = new JPanel(); 
      contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 
      setContentPane(contentPane); 
      contentPane.setLayout(null); 

      JLabel lblName = new JLabel("Name"); 
      lblName.setBounds(56, 56, 56, 16); 
      contentPane.add(lblName); 

      JLabel lblUsername = new JLabel("Username"); 
      lblUsername.setBounds(56, 85, 77, 16); 
      contentPane.add(lblUsername); 

      JLabel lblPassword = new JLabel("Password"); 
      lblPassword.setBounds(56, 114, 56, 16); 
      contentPane.add(lblPassword); 

      JLabel lblAge = new JLabel("Age"); 
      lblAge.setBounds(56, 143, 56, 16); 
      contentPane.add(lblAge); 

      JLabel lblGender = new JLabel("Gender"); 
      lblGender.setBounds(56, 172, 56, 16); 
      contentPane.add(lblGender); 

      textField = new JTextField(); 
      textField.setBounds(130, 53, 116, 19); 
      contentPane.add(textField); 
      textField.setColumns(10); 

      textField_1 = new JTextField(); 
      textField_1.setBounds(130, 82, 116, 22); 
      contentPane.add(textField_1); 
      textField_1.setColumns(10); 

      textField_2 = new JTextField(); 
      textField_2.setBounds(130, 111, 116, 22); 
      contentPane.add(textField_2); 
      textField_2.setColumns(10); 

      textField_3 = new JTextField(); 
      textField_3.setBounds(130, 140, 116, 22); 
      contentPane.add(textField_3); 
      textField_3.setColumns(10); 

      textField_4 = new JTextField(); 
      textField_4.setBounds(130, 169, 116, 22); 
      contentPane.add(textField_4); 
      textField_4.setColumns(10); 

      JButton btnSubmit = new JButton("Submit"); 
      btnSubmit.addActionListener(new ActionListener() { 

       public void actionPerformed(ActionEvent arg0) { 



       } 
      }); 
      btnSubmit.setBounds(169, 215, 97, 25); 
      contentPane.add(btnSubmit); 

      lblNewLabel = new JLabel("New label"); 
      lblNewLabel.setBounds(330, 56, 56, 16); 
      contentPane.add(lblNewLabel); 
     } 


    } 

https://i.stack.imgur.com/CU3ax.png

EDIT 1:アクションに追加された文字列名は、名前だけを取得します。

JButton btnSubmit = new JButton("Submit"); 
     btnSubmit.addActionListener(new ActionListener() { 

      public void actionPerformed(ActionEvent arg0) { 

       String Name; 

      } 
     }); 

とこれは

GUIが真っ白になった起こった:あなたはabsolute layoutを使用している

https://i.stack.imgur.com/02Mxe.png

+2

(1)あなたもあなたのActionListener内の任意のコードを持っていません。問題を示す適切な[mcve]を投稿してください。 – camickr

+0

@camickrそれは私が文字列名を定義することさえどういう疑問です。私のアクションリスナーではGUIが空白になります。 – Saubhagya

+0

'もし私が文字列名を定義しても;アクションリスナでGUIが空になります」 - テキストフィールドでgetText()メソッドを使用するためにActionListenerにコードを追加すると、GUIが空白になる理由はありません。だからあなたが助けを望むなら、それを証明してください!使用している実際のコードを投稿してください。あなたは何をしているのか推測できません。 – camickr

答えて

1

。ウィンドウはpack()できませんので、少なくともvalidate()の内容が必要です。

Register frame = new Register(); 
frame.validate(); 
frame.setVisible(true); 

今、あなたは本当の問題を見ることができます:あなたは私のコンピュータ上のテキストをカットlblPasswordlblNewLabelの境界を選びました。 layoutを使用する必要があります(thisなど)。

screenshot

+1

はい、私は別のレイアウトを見た後、それを理解しました! – Saubhagya

関連する問題