如何在另一个类中使用方法

时间:2017-09-20 16:17:23

标签: java methods

我是Java和编码的新手,但我很快就学会了。我一直在努力学习JFrame按钮,但是我无法让我的按钮做任何期望打印线的事情。有人可以解释如何让按钮运行方法" Lmao()":

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

public class GameCenter2

{
    public static void Lmao() {
        Scanner scan = new Scanner(System.in);
        boolean run = true;
        while (run) {
            int random = (int) (Math.random() * 100);
            System.out.println("Pick a number 1 - 100");
            int response = scan.nextInt();
            int difference = java.lang.Math.abs(response - random);
            if (random == response) {
                System.out.println("Congradulations, you win!  The number was " + random);
            } else {
                System.out.println("WRONG! You were " + difference + " numbers off. The number was " + random + ".");
            }
            System.out.println("Would you like to play again?  Yes or No.");

            String response1;
            response1 = scan.next();

            if (response1.equals("Yes")) {
                run = true;
            } else {
                run = false;
            }
        }
    }

    public static void main(String[] args) {
        Login();
        Button frm = new Button("GameCenter");

        frm.setSize(200, 100);
        frm.setVisible(true);

    }
}

class Button extends JFrame implements ActionListener {
    boolean guess;
    JButton bChange; // reference to the button object

    // constructor for ButtonFrame2
    Button(String title) {
        super(title); // invoke the JFrame constructor
        setLayout(new FlowLayout()); // set the layout manager

        // construct a Button
        bChange = new JButton("Guessing Game");

        // register the ButtonFrame2 object as the listener for the JButton.
        bChange.addActionListener(this);

        add(bChange); // add the button to the JFrame
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public void actionPerformed(ActionEvent evt) {
        Lmao();
    }
}

我的想法是希望能够为我的所有不同项目创建一个Hub,这就是为什么我希望能够使用一系列方法,除非有更好的方法。

1 个答案:

答案 0 :(得分:0)

您正尝试从其他类访问static方法。

静态方法应该被称为

DefinedClassName.methodName();

所以,在你的情况下,

GameCenter2.Lmao();

应该有效。

如果它是一个非静态方法,你应该创建一个Object并使用像object.method()。

实施例,

class MyClass {
  public void myMethod() {
     // Do something
  }
}

class MyMainClass {
  public static void main(String[] args) {
    MyClass object = new MyClass();
    object.myMethod();
  }
}

对代码的一点改进,

public static void Lmao() {
    Scanner scan = new Scanner(System.in);
    boolean isContinue = true;
    do {   
         int random = (int)(Math.random() * 100);
         System.out.println("Pick a number between 1 - 100");
         int response = scan.nextInt();
         int difference = java.lang.Math.abs( response - random );
         if (random == response) {
             System.out.println("Congradulations, you win!  The number was " + random);
         } else {
             System.out.println("WRONG! You were " + difference + " numbers off. The number was " + random + ".");
         }

         System.out.println("Would you like to play again?  Yes or No.");

         isContinue = scan.next().trim().equalsIgnoreCase("Yes");
    } while(isContinue);   
}