Java 如何让这个类调用另一个类

Java 如何让这个类调用另一个类,java,swing,awt,paint,Java,Swing,Awt,Paint,好的,我有两门课 这是我的主要类,它打开一个JFrame并将一些内容绘制到JFrame: import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics; import javax.swing.JFrame; public class MainWindow extends Canvas{ public static int HEIGHT = 600; public static int WIDTH = 6

好的,我有两门课 这是我的主要类,它打开一个JFrame并将一些内容绘制到JFrame:

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;

public class MainWindow extends Canvas{

  public static int HEIGHT = 600;
  public static int WIDTH = 600;

  public static void main(String[] args){
    MainWindow Window = new MainWindow();
    JFrame Frame = new JFrame();
    Frame.add(Window);
    Frame.pack();
    Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Frame.setVisible(true);
    Frame.setSize(WIDTH, HEIGHT);
    Frame.setLocationRelativeTo(null);
    Frame.setResizable(false);
    Frame.setTitle("Untitled Build 0.01");
  }
  public void paint(Graphics g){
    g.setColor(Color.BLACK);
    g.fillRect(0, 0, WIDTH, HEIGHT);
    g.setColor(Color.GRAY);
    g.drawString("Sellect A Difficulty", 100, 25);
    g.drawString("Please input a number from 1 - 3", 100, 40);
    g.drawString("1. Easy", 100, 55);
    g.drawString("2. Medium", 100, 70);
    g.drawString("3. Hard", 100, 85);
    g.setColor(Color.BLACK);
  }
}
这是我的第二节课,它是用来设置游戏难度的,但我需要主课来调用它,但我不知道如何让它做到这一点

  public class Difficulty {
public static final int input = 0;
static int NoInput = 1;
public static int Difficulty = 0;

@SuppressWarnings("unused")
public static void main(String[] args){
    if(NoInput == 1){
        //draw text to screen here
        //TODO Write text to screen here about selecting difficulty
        Difficulty = Keyboard.readInt();
        if(input == 1){
            Difficulty = 1;
        }else if(input == 2){
            Difficulty = 2;
        }else if(input == 3){
            Difficulty = 3;
        }else if(input < 0 | input > 3){
            //TODO draw "please input a number between 1 and 3 try again...." to screen
        }
    }
  }
}
公共课难度{
公共静态最终整数输入=0;
静态int NoInput=1;
公共静态int难度=0;
@抑制警告(“未使用”)
公共静态void main(字符串[]args){
如果(NoInput==1){
//在此处绘制屏幕文本
//TODO在此处向屏幕写入有关选择难度的文字
难度=键盘.readInt();
如果(输入=1){
难度=1;
}else if(输入=2){
难度=2;
}else if(输入=3){
难度=3;
}否则如果(输入<0 |输入>3){
//TODO draw“请输入一个介于1和3之间的数字,然后重试…”屏幕
}
}
}
}

您的第二个类只不过是一个带有单个静态main方法的程序,这是行不通的。建议:

  • 去掉第二个类,并将其重新编写为一个真正符合OOP的类,一个具有非静态字段、方法、构造函数、setter等的类
  • 然后第一个类可以拥有第二个类的对象,并根据需要调用其方法
  • 第二个类也需要是一个非控制台GUI类,很可能是一个生成JOptionPane的类
  • 您的GUI类不应该混合AWT和Swing组件,而应该只包含Swing组件
  • 阅读教程“使用Swing绘制”,了解如何改进您的绘制

    • 您的第二个类只不过是一个带有单个静态main方法的程序,这是行不通的。建议:

      • 去掉第二个类,并将其重新编写为一个真正符合OOP的类,一个具有非静态字段、方法、构造函数、setter等的类
      • 然后第一个类可以拥有第二个类的对象,并根据需要调用其方法
      • 第二个类也需要是一个非控制台GUI类,很可能是一个生成JOptionPane的类
      • 您的GUI类不应该混合AWT和Swing组件,而应该只包含Swing组件
      • 阅读教程“使用Swing绘制”,了解如何改进您的绘制

      为什么有两个主要空隙?您应该为难度类使用构造函数。 将所有代码放入如下方法中:

      public Difficulty() {
         //All your code here
      }
      
      您可以通过创建此类的新实例来调用此方法

      Difficulty object = new Difficulty();
      

      创建对象时将自动调用构造函数。

      为什么有两个主要的空白?您应该为难度类使用构造函数。 将所有代码放入如下方法中:

      public Difficulty() {
         //All your code here
      }
      
      您可以通过创建此类的新实例来调用此方法

      Difficulty object = new Difficulty();
      
      当您创建对象时,构造函数将自动被调用。

      满是鳗鱼的气垫船(顺便说一句好听的名字)已经回答了这个问题,但我还是要加上我的2美分:p

      第二个类使用publicstaticvoidmain(String[]args),这意味着它将单独运行

      快速修复方法可能是为该类创建构造函数,然后通过对象调用它

      public class Difficulty {
          public Difficulty(){
              // Code here
          }
      }
      
      称之为:

      Difficulty difficulty = new Difficulty();
      
      这将在对象创建后立即调用构造函数,因此在您选择时执行您的代码。

      满是鳗鱼的气垫船(好名字顺便说一句)已经回答了这个问题,但我还是要加上我的2美分:p

      第二个类使用publicstaticvoidmain(String[]args),这意味着它将单独运行

      快速修复方法可能是为该类创建构造函数,然后通过对象调用它

      public class Difficulty {
          public Difficulty(){
              // Code here
          }
      }
      
      称之为:

      Difficulty difficulty = new Difficulty();
      

      这将在创建对象后立即调用构造函数,因此在选择时执行代码。

      首先,您可能不应该将其命名为
      main
      。同时,尝试
      demobility.main(null)
      一件事,您可能不应该将其命名为
      main
      。同时,试试难度。main(null)谢谢我现在就去改进谢谢我现在就去改进