首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从另一个类调用方法时出现错误Java

从另一个类调用方法时出现错误Java
EN

Stack Overflow用户
提问于 2018-08-12 03:56:32
回答 1查看 51关注 0票数 0

我正在尝试从另一个类中的ActionListener访问另一个类中的方法,但是,ActionListener中的nameWelcome有一个语法错误消息,要求我创建它的一个变量。我已经创建了一个对象,并将其引用到我想要访问的类。我不知道我在哪里犯了错:

代码语言:javascript
复制
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class mathMulti extends JFrame {
    JButton nextButton;
    TextField nameField;
    JLabel fullName;
    JFrame frameOne;
    JPanel panelOne;

    public mathMulti() {

        frameStart();

    }

    public void frameStart() {


        frameOne = new JFrame();
        frameOne.setSize(500, 500);
        frameOne.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        panelOne = new JPanel(new GridBagLayout());
        panelOne.setBackground(Color.gray);
        frameOne.add(panelOne);

        GridBagConstraints g = new GridBagConstraints();
        fullName = new JLabel("Full Name: ");
        g.insets = new Insets(-390, -195, 0, 0);
        g.gridx = 0;
        g.gridy = 0;
        panelOne.add(fullName, g);

        nameField = new TextField(30);
        g.insets = new Insets(10, 10, 10, 10);
        g.gridx = 1;
        g.gridy = 0;
        g.weightx = 0;
        g.weighty = 0;
        g.ipady = 6;
        panelOne.add(nameField, g);

        nextButton = new JButton(" NEXT " + '\u25BA');
        g.insets = new Insets(60, 5, 5, 5);
        g.gridx = 2;
        g.gridy = 5;
        g.weightx = 0;
        g.weighty = 0;

        nextButton.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

               mathApo mathA =  new mathApo();
               mathA.frameNext();
               nameWelcome.setText(nameField.getText());
               frameOne.dispose();

            }

        });

        panelOne.add(nextButton, g);

        frameOne.setVisible(true);

    }


    public class mathApo extends JFrame {

          JFrame frameTwo;
          JPanel panelTwo;
          JLabel nameWelcome;

        public mathApo() {

            frameNext();

        }

        public void frameNext() {

            frameTwo = new JFrame();
            frameTwo.setSize(500, 500);
            frameTwo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            panelTwo = new JPanel(new GridBagLayout());
            panelTwo.setBackground(Color.gray);
            frameTwo.add(panelTwo);

            nameWelcome = new JLabel("Welcome, ");
            panelTwo.add(nameWelcome);

            frameTwo.setVisible(true);
        }

    }

}
EN

回答 1

Stack Overflow用户

发布于 2018-08-12 06:14:11

就像user Worthless在评论中指出的那样,调用变量nameWelcome就像它是mathMulti类中的一个字段一样,但实际上它是mathApo类中的一个字段。

所以这就是:

代码语言:javascript
复制
nameWelcome.setText(nameField.getText()); 

真的应该是:

代码语言:javascript
复制
mathA.nameWelcome.setText(nameField.getText());

此外,尽管它不是特别重要,但Java中的约定是将类名的第一个字母大写。因此,不是mathApomathMulti,而是MathApoMathMulti

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51803238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档