2017-07-30 44 views
-1

爲什麼我的代碼AddQnA qa = new AddQnA();DisplayQnA的最後一個分段上工作?「實際或正式參數列表的長度不同」

我正在創建一個圖形用戶界面,似乎無法創建調用者以調用AddQnA類中的數組列表,因此想知道是否有人知道?

public static class AddQnA extends JDialog { 

    JLabel label, label2, label3, label4; 
    JTextField question, answer; 
    JButton input, reset; 
    JTextArea textarea; 

    ArrayList<String> ques = new ArrayList<>(); 
    ArrayList<String> ans = new ArrayList<>(); 

    public AddQnA(JFrame frame) { 
     super(frame, "Add Question & Answer", true); 
     setLayout(new FlowLayout()); 

     label = new JLabel("Question :"); 
     add(label); 

     question = new JTextField(60); 
     add(question); 

     label2 = new JLabel("Answer : "); 
     add(label2); 

     answer = new JTextField(60); 
     add(answer); 

     input = new JButton("Submit"); 
     add(input); 

     reset = new JButton("Reset"); 
     add(reset); 

     label3 = new JLabel("Please use the \"x\" on the top right to exit 
     this section"); 
     add(label3); 

     label4 = new JLabel(""); 
     add(label4); 

     textarea = new JTextArea(10, 25); 
     add(textarea); 
     textarea.setEditable(false); 

     Reset a = new Reset(); 
     reset.addActionListener(a); 

     Submit b = new Submit(); 
     answer.addKeyListener(b); 

     Submit c = new Submit(); 
     input.addActionListener(c); 
    } 
} 

    public static class DisplayQnA extends JDialog { 

    JLabel label; 
    JTextArea textarea; 
    AddQnA qa = new AddQnA(); 

    public DisplayQnA(JFrame frame) { 
     super(frame, "Display Question & Answer", true); 
     setLayout(new FlowLayout()); 

     label = new JLabel("Displaying All Questions And Asnwers"); 
     add(label); 

     textarea = new JTextArea(10, 25); 
     add(textarea); 
     textarea.setEditable(false); 

     for (int i = 0; i < qa.ques.size(); i++) { 
      if (qa.ques.get(i) != null) { 
       System.out.println("Question: " + qa.ques.get(i)); 
       System.out.println("Answer: " + qa.ans.get(i) + "\n"); 
      } else { 
       System.out.println("There are no newly added questions or 
       answers"); 
      } 
     } 

    } 

回答

1

AddQnA有1個帶參數JFrame的構造函數。所以你必須發送JFrame對象。

用JFrame對象調用它。在你的代碼:

public static class DisplayQnA extends JDialog { 

JLabel label; 
JTextArea textarea; 
AddQnA qa; 

public DisplayQnA(JFrame frame) { 

    super(frame, "Display Question & Answer", true); 
    qa = new AddQnA(frame) 
+0

那麼我在哪裏添加此代碼?對不起,我高興模糊 –

+1

你需要它的地方,可以公開DisplayQnA(JFrame幀){? – user7294900

+0

public DisplayQnA(JFrame frame){super(frame,「Display Question&Answer」,true); setLayout(new FlowLayout()); new AddQnA(frame);像那樣? –

相關問題