Java “;实际或正式参数列表的长度不同”;

Java “;实际或正式参数列表的长度不同”;,java,swing,user-interface,methods,compiler-errors,Java,Swing,User Interface,Methods,Compiler Errors,为什么我的代码不能AddQnA qa=newaddqna()在最后一段的DisplayQnA工作 我正在创建一个GUI,似乎无法创建调用方来调用AddQnA类中的arraylist,因此我想知道是否有人知道 public static class AddQnA extends JDialog { JLabel label, label2, label3, label4; JTextField question, answer; JButton input, reset;

为什么我的代码不能
AddQnA qa=newaddqna()在最后一段的
DisplayQnA
工作

我正在创建一个GUI,似乎无法创建调用方来调用
AddQnA
类中的arraylist,因此我想知道是否有人知道

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");
            }
        }

    }
公共静态类AddQnA扩展JDialog{
JLabel标签,标签2,标签3,标签4;
JTextField问题、答案;
按钮输入,复位;
JTextArea textarea;
ArrayList ques=新的ArrayList();
ArrayList ans=新的ArrayList();
公共AddQnA(JFrame){
超级(框架,“添加问题和答案”,正确);
setLayout(新的FlowLayout());
标签=新的JLabel(“问题:”);
添加(标签);
问题=新的JTextField(60);
加上(问题);
label2=新的JLabel(“答案:”);
添加(标签2);
答案=新的JTextField(60);
加(答);
输入=新按钮(“提交”);
添加(输入);
重置=新的按钮(“重置”);
添加(重置);
label3=新的JLabel(“请使用右上角的\“x\”退出
本条“);
添加(标签3);
label4=新的JLabel(“”);
添加(标签4);
textarea=新的JTextArea(10,25);
添加(文本区域);
textarea.setEditable(false);
重置a=新的重置();
reset.addActionListener(a);
提交b=新提交();
答:addKeyListener(b);
提交c=新提交();
input.addActionListener(c);
}
}
公共静态类DisplayQnA扩展JDialog{
JLabel标签;
JTextArea textarea;
AddQnA qa=新的AddQnA();
公共显示QNA(JFrame){
super(框,“显示问题和答案”,true);
setLayout(新的FlowLayout());
标签=新的JLabel(“显示所有问题和询问”);
添加(标签);
textarea=新的JTextArea(10,25);
添加(文本区域);
textarea.setEditable(false);
对于(int i=0;i
AddQnA有一个参数为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)

那么,我应该在哪里添加此代码呢?对不起,我有点模糊您需要它的地方,可以是public DisplayQnA(JFrame frame){public DisplayQnA(JFrame frame){super(frame,“Display Question&Answer”,true);setLayout(new FlowLayout());new AddQnA(frame);像这样?
AddQnA qa qa=new AddQnA();
应该改为只
AddQnA qa;
&
qa=new AddQnA(frame);
需要在构造函数内部,其中
frame
在范围内。顺便说一句“仅限编号ID”的人,祝贺2K代表:)对不起,我有点傻,因为这对我来说还是新的