2017-10-01 58 views
0

我創建了兩個Java文件,一個是Reg.java,第二個是Get.java。在Reg.java中,我創建了一個JFrame,其中包含用於名稱和文本框的年齡文本框以及一個按鈕。我想要的只是當您在文本框中輸入名稱和年齡並單擊按鈕時,它會傳遞字符串名稱和年齡並在Get.java中顯示。如何從一個Java文件傳遞字符串到另一個Java文件

這是我Reg.java

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

public class Reg extends JFrame implements ActionListener { 

    private Container con = getContentPane(); 

    FlowLayout fl = new FlowLayout(); 
    JLabel lb1 = new JLabel(": "); 
    JTextField tf1 = new JTextField(14); 
    JLabel lb2 = new JLabel("Enter your Age: "); 
    JTextField tf2 = new JTextField(14); 
    JButton btnSub = new JButton("Submit"); 

    public Reg(){ 

     setLayout(fl); 
     setSize(350, 275); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     add(lb1); 
     add(tf1); 
     add(lb2); 
     add(tf2); 
     add(btnSub); 
     lb1.setAlignmentX(LEFT_ALIGNMENT); 
     lb2.setAlignmentX(LEFT_ALIGNMENT); 
     lb1.setPreferredSize(new Dimension(120,50)); 
     lb2.setPreferredSize(new Dimension(120,50)); 
     tf1.setAlignmentX(RIGHT_ALIGNMENT); 
     tf2.setAlignmentX(RIGHT_ALIGNMENT); 
     btnSub.setHorizontalAlignment(JButton.CENTER); 
     btnSub.setToolTipText("Click to Submit"); 
     btnSub.addActionListener(this); 
    } 
    public void actionPerformed(ActionEvent e){ 
     String name = tf1.getText(); 
     String age = tf2.getText(); 
    } 
    public static void main(String[] args){ 

     Reg fr = new Reg(); 
     fr.setVisible(true); 
    } 
} 
+3

分享你的代碼到目前爲止你所做的。 –

+0

創建一個文本文件。將Reg.java中接受的值寫入該文本文件。接下來,啓動Get.java並在其中讀取您在Reg.java中創建的文本文件 – progyammer

+0

好的謝謝,但是如何? – Ahrdie

回答

-2

使用BuferedReader與get.java代碼,並使用與BufferedWriter將reg.java。 使用BufferedWriter將在reg.java寫的名字和年齡在兩行,然後使用的BufferedReader在Get.java讀取這些數據值。

+2

在Java類之間傳遞信息完全不需要寫入用戶的文件系統。 –

+0

是的,但是在這種情況下,他沒有使用任何IDE接近 –

+0

一個IDE或缺乏無關的事實,這簡直是一個非常貧窮的(不必要的)方法的一種方式。 –

0
public class Reg extends JFrame implements ActionListener { 
    ..... 
    ''''' 
    Get get; 

    public Reg(){ 

     ..... 
     ..... 
     get = new Get(); 
    } 
    @Override 
    public void actionPerformed(ActionEvent e){ 
     String name = tf1.getText(); 
     String age = tf2.getText(); 
     get.print(name); 
     get.print(age); 
    } 
} 

class Get{ 

    public void print(String txt) { 
     System.out.println(txt); 
    } 
} 
1

對於一個更一般的情況下,你可能會爲訪問用戶名和密碼,並從主類登錄類,以調用這些方法提供參考方法。

但是,這並不需要兩個Java類,更別說兩個Java文件。它也不需要使用兩個幀,事實上,這是一個情況,其中多個幀使得任務更棘手,因爲幀是非模態的。使用模式JDialogJOptionPane而不是「登錄框架」。這樣,密碼一經解散就可以被檢查。

這是它可能是什麼樣子:(提示:所有用戶名的密碼是 '客人')

enter image description here

這裏是如何去做:

import java.awt.*; 
import javax.swing.*; 
import javax.swing.border.EmptyBorder; 

public class LoginRequired { 

    private JTextField usernameField = new JTextField("Joe Blogs"); 
    private JPasswordField passwordField = new JPasswordField(); 
    char[] password = {'g', 'u', 'e', 's', 't'}; 
    JPanel loginPanel; 

    LoginRequired() { 
     JFrame f = new JFrame("Login Required"); 
     f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 

     JLabel output = new JLabel(
       "Login is required to use this application!", 
       SwingConstants.CENTER); 
     output.setBorder(new EmptyBorder(50, 100, 50, 100)); 
     f.add(output); 
     f.pack(); 
     f.setResizable(false); 
     f.setLocationByPlatform(true); 
     f.setVisible(true); 

     boolean loginValid = false; 
     while (!loginValid) { 
      showLogin(f); 
      loginValid = isLoginValid(); 
     } 
     String user = usernameField.getText(); 
     output.setText("Welcome back, " + user + "!"); 
     f.setTitle("Logged In: " + user); 
    } 

    private boolean isLoginValid() { 
     char[] passwordEntered = passwordField.getPassword(); 
     if (passwordEntered.length != password.length) { 
      return false; 
     } else { 
      for (int ii = 0; ii < password.length; ii++) { 
       if (password[ii] != passwordEntered[ii]) { 
        return false; 
       } 
      } 
      return true; 
     } 
    } 

    private void showLogin(JFrame frame) { 
     if (loginPanel==null) { 
      loginPanel = new JPanel(new BorderLayout(5, 5)); 

      JPanel labels = new JPanel(new GridLayout(0, 1, 2, 2)); 
      labels.add(new JLabel("User Name", SwingConstants.RIGHT)); 
      labels.add(new JLabel("Password", SwingConstants.RIGHT)); 
      loginPanel.add(labels, BorderLayout.WEST); 

      JPanel controls = new JPanel(new GridLayout(0, 1, 2, 2)); 
      usernameField = new JTextField("Joe Blogs"); 
      controls.add(usernameField); 
      passwordField = new JPasswordField(); 
      controls.add(passwordField); 
      loginPanel.add(controls, BorderLayout.CENTER); 
     } 
     passwordField.setText(""); 

     JOptionPane.showMessageDialog(
       frame, loginPanel, "Log In", JOptionPane.QUESTION_MESSAGE); 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       new LoginRequired(); 
      } 
     }); 
    } 
} 
相關問題