2016-07-18 5 views
-1

私は2つのフォームを持っています。最初の形式では、オブジェクトsuggestionを作成します。それから私はそれを使って何かをして、それを第二の形式に提出しなければなりません。どのようにして最初のフォームに記入してから2番目のウィンドウを開くことができますか?最初のフォームから2番目のフォームへの情報スイングJava

これが私の最初の形式である:

public class FormNum1 extends JFrame { 
    JButton clearConfermation, conferm; 
    JLabel dateofDeparture, dateofArrival, cityFrom, cityTo; 
    JTextField dateofDepartureTextField, dateofArrivalTextField, cityFromTextField, cityToTextField; 
    static Suggestion suggestion; 
    Boolean n = false; 
    JFrame form1 = new JFrame("form1"); 
    ActionListener actionPerformed; 
    public FormNum1(){ 
     form1.setVisible(true); 
     form1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     form1.setSize(1200,250); 
     //setResizable(false); 
     form1.setLocationRelativeTo(null); 
     form1.setLayout(new FlowLayout()); 
     clearConfermation = new JButton("Make clear"); 
     conferm = new JButton("Confirm information "); 
     dateofDeparture = new JLabel("Date of Departure"); 
     dateofArrival = new JLabel("Date of Arrival"); 
     cityFrom = new JLabel("City From"); 
     cityTo = new JLabel("City to"); 
     dateofDepartureTextField = new JTextField(10); 
     dateofArrivalTextField = new JTextField(10); 
     cityFromTextField = new JTextField(10); 
     cityToTextField = new JTextField(10); 
     form1.add(clearConfermation); 
     form1.add(conferm); 
     form1.add(dateofDeparture); 
     form1. add(dateofDepartureTextField); 
     form1.add(dateofArrival); 
     form1.add(dateofArrivalTextField); 
     form1.add(cityFrom); 
     form1.add(cityFromTextField); 
     form1.add(cityTo); 
     form1.add(cityToTextField); 
     actionPerformed = new InformationFromFormOne(); 
     conferm.addActionListener(actionPerformed); 
     clearConfermation.addActionListener(actionPerformed); 
    } 


    class InformationFromFormOne implements ActionListener{ 
     public void actionPerformed(ActionEvent e) { 

      if (e.getSource() == conferm){ 
       String dateOfDeparture = (dateofDepartureTextField.getText()); 
       String dateOfArrival = (dateofArrivalTextField.getText()); 
       String cityFrom = (cityFromTextField.getText()); 
       String cityTo = (cityToTextField.getText()); 
       suggestion = new Suggestion(dateOfDeparture, dateOfArrival, true, cityFrom, cityTo); 

       setVisible(false); 
       form1.dispose(); 
      } 

      if (e.getSource() == clearConfermation){ 
       dateofArrivalTextField.setText(null); 
       dateofDepartureTextField.setText(null); 
       cityFromTextField.setText(null); 
       cityToTextField.setText(null); 
      } 
     } 
    } 
} 

私の2番目の形式はvisibleに第二枠を設定した第1のフレーム処理の後

public class FormNum2 extends JFrame{ 
    static JFrame form2 = new JFrame("form2"); 

    public FormNum2() { 
     form2.setSize(1200,600); 
     //frame.setResizable(false); 
     form2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     form2.setLocationRelativeTo(null); 
     form2.setVisible(true); 
    } 
} 

メインクラス

public class Main extends Thread{ 
    public static void main(String[] args) { 
     FormNum1 form1 = new FormNum1(); 
     FormNum2 form2 = new FormNum2(); 
    } 
} 
+0

「確認」の綴りは「conferm」ではなく、そのままです。確認のためにも同じです。他の場所で使用された場合に変更する必要はありませんでした。 – ragingasiancoder

+0

1)[複数のJFramesの使用、良い/悪い習慣?](http://stackoverflow.com/q/9554636/418556)を参照してください。2)[検出/コードブロックのぶら下がっている括弧のための修正](http://meta.stackexchange.com/q/251795/155831)私はもはや悩んでいた問題を解決することができませんでした。 3)もっと早い時期に、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 –

+0

'form1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);'(sigh)あなたは***本当に***は、現在進行中のように '飛行ブラインド'ではなく、使用されたメソッドのJavaドキュメントをチェックする必要があります。 –

答えて

0

あり、置きますFormNum2 .setVisible(true);を使用して2番目の形式を表示します。

+0

@AndrewThompson答えはOPによって受け入れられたので、彼は彼の問題を解決するのを助けました、なぜ私がdownvotedになったのかわかりません。 –

+0

実際に私はOPが答えを受け入れることがかなり速かったので返答しなかったので、その後は返答する必要はないと感じました。私はOPと同じ問題を抱えていましたので、コードを読んだ直後に答えました。 –

-1

最初のオブジェクトの塗りつぶしの後に2番目のウィンドウを開く場合は、オブジェクトが塗りつぶされた後にFormNum2を呼び出す必要があります。form2 = new FormNum2() form1.dispose()の後にこの行を追加したいようです。

+0

あなたはそれを試しましたか? –

+0

私は自分自身でそれを試していませんでしたが、あなたのコードを見ればうまくいくはずです。それを試しましたか?あなたの問題を解決しましたか?また、@ GherbiHichamの答えも動作する必要があります。単にform2.setVisible(true)を削除してください。 Form2のコンストラクタから取得します。 – monsterman

+0

'form1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);'& 'form2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);の効果を慎重に考えてください。***ウィンドウが閉じているとどうなりますか? * "あなたのコードを見ればうまくいく" *元の質問をした人に返信しているような印象を受けているようです。私は見ることができます[ここ](http://stackoverflow.com/tags/swing/topusers).. –

関連する問題