我是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,这就是为什么我希望能够使用一系列方法,除非有更好的方法。
答案 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);
}